如何检查我的javascript浏览器扩展是否有效

时间:2011-09-04 15:02:26

标签: google-chrome-extension

我正在尝试为Google Chrome创建一个简单的基于JavaScript的扩展程序,该扩展程序从一个特定的iframe获取数据并将其作为POST请求的一部分发送到网页。 将POST请求提交的数据发送到我的电子邮件地址的网页。

我尝试运行扩展程序,它看起来运行正常,但我没有收到任何电子邮件。 接收表单数据的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("arvindikchari@yahoo.com")
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)

更新

我进行了更改,以便后台页面调用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>

1 个答案:

答案 0 :(得分:1)

查看代码看起来就像是在尝试从内容脚本发送跨域ajax请求。这是不允许的,您只能从后台页面以及在清单中声明相应的域之后才能这样做。更多信息here

要检查您的分机是否有效,您可以打开dev tools并检查控制台中是否有任何错误。打开“网络”标签,查看是否已将请求发送到您的网址。将console.log放在代码中的不同位置以进行调试,或使用功能齐全的内置javascript调试程序进行逐步调试。