This question already has an answer here:
How to access the webpage DOM rather than the extension page DOM?
                            
                                (1个答案)
                            
                    
                4年前关闭。
        

    

假设我有一个jsp页面,其中包含这样的会话数据,

<input type="hidden" id="sessionData" value="${login}"/>


现在,我有了一个chrome扩展名,并且要在js文件(例如“ popup.js”)中使用getElementById访问数据。例如,

chrome.tabs.getSelected(null,function(tab) {
    //alert(tab.id);
    var sessionData = document.getElementById('sessionData').value;
    console.log('session data is '+sessionData);
    alert(sessionData.lang);
});


不幸的是,我无法获取任何会话数据。没有警报显示。在获取会话数据之前,alert(tab.id);正确显示选项卡ID。 (请不要建议不要使用chrome.tabs.getSelected;我已经知道了。)

最佳答案

使用chrome.tabs.executeScript()在这样的标签中执行代码:

chrome.tabs.executeScript(null, {file: "content_script.js"});


content_script.js:

var sessionData = document.getElementById('sessionData').value;
console.log('session data is '+sessionData);
alert(sessionData.lang);


注意:您需要activeTab权限才能在活动选项卡中执行代码

"permissions": [
  "activeTab"
]

10-04 22:47
查看更多