我正在尝试为Google Chrome创建一个简单的基于JavaScript的扩展,它从一个特定的iframe获取数据并将其作为POST请求的一部分发送到网页。 将通过POST请求提交的数据发送到我的电子邮件地址的网页。如何检查我的javascript浏览器扩展是否工作
我试着运行扩展,它看起来运行良好,但我没有收到任何电子邮件。 接收表单数据的servlet非常简单,我不认为它有任何错误。 我想要的是一些方法来检查基于JavaScript的扩展是否工作。
的JavaScript代码如下─
var mypostrequest=new ajaxRequest()
mypostrequest.onreadystatechange=function(){
if (mypostrequest.readyState==4){
if (mypostrequest.status==200 || window.location.href.indexOf("http")==-1){
document.getElementById("result").innerHTML=mypostrequest.responseText
}
else{
alert("An error has occured making the request")
}
}
}
var namevalue=encodeURIComponent("Arvind")
var descvalue=encodeURIComponent(window.frames['test_iframe'].document.body.innerHTML)
var emailvalue=encodeURIComponent("[email protected]")
var parameters="name="+namevalue+"&description="+descvalue &email="+emailvalue
mypostrequest.open("POST", "http://taurusarticlesubmitter.appspot.com/sampleform", true)
mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
mypostrequest.send(parameters)
UPDATE
,这样在js文件的内容是通过后台页面调用,但即使是现在扩展没有工作,我所做的更改给出。
我把下面的代码在background.html:
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "content.js"});
});
chrome.browserAction.setBadgeBackgroundColor({color:[0, 200, 0, 100]});
</script>
我做了更改,以便js文件中的内容由背景页面调用,但即使现在扩展也不起作用 - 我将下面的代码放在background.html-- – user893664
@ user893664从背景页面调用内容脚本不会解决任何问题。您需要从**背景页面本身发送ajax请求**。如果您需要先使用内容脚本收集一些数据,请使用消息传递功能:http://code.google.com/chrome/extensions/dev/messaging.html – serg
我可以在包含我的网站的窗口中发送iframe的内容页面,从内容脚本到后台页面? (然后后台页面将提交该数据到远程URL)...你也可以指向我的代码从内容脚本中检索iframe的内容吗?我尝试了一些可用的代码,但总是显示的值是“未定义”... – user893664