我正在嘗試爲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