1

我正在尝试构建一个 chrome 扩展,它可以让我检查打开的页面上是否存在某些元素。有人可以在这里帮助我。当我使用下面的代码时,它给出空值。

清单.json

{
  "name": "A browser action with a popup that changes the page color.",
  "version": "1.0",
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "browser_action": {
      "default_title": "Set this page's color.",
      "default_icon": "icon.png",
      "default_popup": "popup.html"
  },
  "manifest_version": 2
}

popup.html

<!doctype html>
<html>
  <head>
    <script src="jquery.js"></script>
    <script src="popup.js"></script>
  </head>
</html>

popup.js

if(jQuery('#nav').is(':visible')==true){
    alert("true");
}else {
        alert("false");
}
4

1 回答 1

0

您必须使用“内容脚本”,它将在您指定的页面上运行。仅当用户单击您的扩展按钮时才会调用弹出页面。

{
    ...,
    "content_scripts": [
        {
            "matches": [
                "*"
            ],
            "js": [
                "script.js"
            ]
        }
    ],
    ...
}

更多信息在这里:http: //developer.chrome.com/extensions/content_scripts.html

此外,在检查时,首先检查元素是否实际存在,然后检查它的可见性:

val $nav = jQuery('#nav');
if( $nav.length > 0 && $nav.is(':visible')==true){
    alert("true");
}else {
    alert("false");
}
于 2012-12-03T07:59:49.553 回答