簡體   English   中英

修改的innerHTML不在頁面上顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM