javascript - 如何通过chrome扩展获取特定页面的 session 数据?

标签 javascript google-chrome session google-chrome-extension

假设我有一个保存像这样的 session 数据的 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);
});

不幸的是,我无法获取任何 session 数据。没有显示任何警报。在获取 session 数据之前,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"
]

关于javascript - 如何通过chrome扩展获取特定页面的 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33981209/

相关文章:

php - php 5.2 和 5.5 中 $_SESSION 行为的区别

html - 如何在完成后保持 CSS3 动画静止,然后在鼠标离开后恢复

php - $_SESSION ['username']/隐藏值

javascript - 将同级元素的值设置为当前元素的值

javascript - 在 JavaScript 中删除对象数组中的重复对象

html - `backdrop-filter: blur()` 在 MacOS 上使用 Google-Chrome 会导致不需要的伪影

css - 无法覆盖 CSS 填充

java - 如何检查 servlet 中的 sessionId 是否有效 (java)

javascript - Uncaught ReferenceError : [functionName] is not defined

javascript - 让 promise 保持未解决状态直到按钮被点击