[英]modified innerHTML does not show on page
我正在寫一個Google擴展程序。 在這里,我的內容腳本根據從后台請求的關鍵字列表來修改頁面。 但是新的innerHTML不會顯示在屏幕上。 我將其與警報合並在一起,以便在決定實際發送消息之前可以看到關鍵字,但這不是例程應如何工作的。 這是代碼:
// MESSAGE.JS //
//alert("Message Page");
var keyWordList= new Array();
var firstMessage="Hello!";
var contentMessage=document.getElementById("message");
contentMessage.value=firstMessage;
var msgComments=document.getElementsByClassName("comment");
msgComments[1].value="Hello Worlds!";//marker to see what happens
chrome.extension.sendRequest({cmd: "sendKeyWords"}, function(response) {
keyWordList=response.keyWordsFound;
//alert(keyWordList.length+" key words.");//did we get any keywords back?
var keyWords="";
for (var i = 0; i<keyWordList.length; ++i)
{
keyWords=keyWords+" "+keyWordList[i];
}
//alert (keyWords);//let's see what we got
document.getElementsByClassName("comment")[1].firstChild.innerHTML=keyWords;
alert (document.getElementsByClassName("comment")[1].firstChild.innerHTML);// this is a band aid - keyWords does not show up in tab
});
document.onclick= function(event) {
//only one button to click in page
document.onload=self.close();
};
我必須怎么做才能使修改后的文本區域實際出現在選項卡中?
(回答我自己的問題)這個問題實際上有兩個部分。 最簡單的部分是我試圖通過設置文本節點的值來修改它,如下所示:
msgComments 1 .value =“ Hello Worlds!”; //標記以查看會發生什么
要使其工作,只需將innerHTML設置為這樣的字符串值:
msgComment1.innerHTML =“ Hello Worlds!”; //現在可以使用了。
問題的第二部分是,對chrome.extension.sendRequest的異步調用在收到回復時需要回調以更新innerHTML。 我先前在這方面發布了一個問題,並且在@serg的上一篇文章中找到解決方案后,自己回答了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.