阅读:4052回复:2
SOS FF扩展开发 FSO 与 跨域ajax
目的: 在用FF浏览网页的时候,同时对网页HTML代码中,符合要求的信息进行提取,并保存。
思路: 先读取页面的HTML document.documentElement.innerHTML 然后用正则表达 match 进行匹配 符合条件的数据 储存为数组 最后 对数组进行保存 问题: 保存操作 不好实现 1)FSO 把数组保存到本地文件里 可是 FF不支持ActiveX 2)Ajax 把数组通过Ajax发送到自己的Web服务器上 但FF 似乎不支持 跨域的ajax 哪位朋友有思路 请提供个解决方案, 小生感激不尽 ---------------------------------------------------------- Array.prototype.unique = function() { if (typeof this=='object'&&this.constructor==Array) { var a = {}; for(var i=0; i<this.length; i++) { if(typeof a[this] == "undefined") a[this] = 1; } this.length = 0; for(var i in a){this[this.length] = i;} return this; } } function saveMail(valStr) { var xmlObj = null; if(window.XMLHttpRequest) { xmlObj = new XMLHttpRequest(); } else if(window.ActiveXObject) { try{ xmlObj = new ActiveXObject("Msxml2.XMLHTTP");} catch (e){ ; } if( xmlObj == null) try { xmlObj = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){ ; } } try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { alert("Permission UniversalBrowserRead denied."); } xmlObj.open("GET", "http://www.cyfwind.com/mailSpider.php?val=" + valStr, false); xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlObj.onreadystatechange = function(){ if (xmlObj.readyState == 4) { if (xmlObj.status == 200) { } } } xmlObj.send(); alert(xmlhttp.getResponseHeader("Server")); } var siteHTML = document.documentElement.innerHTML; var regStr = /[A-Za-z0-9][-\.\w]*@[A-Za-z0-9][-\.\w]+\.(com|net|org|gov|edu|cn|jp|tw|hk)/ig; var mailAry = siteHTML.match(regStr); var mailStr; alert(mailAry); if (mailAry) { mailStr = mailAry.unique(); saveMail(mailAry); } |
|
1楼#
发布于:2008-04-30 21:36
跨域,用代理。
|
|
2楼#
发布于:2008-04-30 21:36
跨域 ajax 参考像 forecastfox 之类扩展。
|
|
|