Chrome扩展程序<all_urls>但不适用于所有网站</all_urls>

时间:2013-11-26 17:55:55

标签: google-chrome-extension pattern-matching manifest

问题解释

我编写了一个小扩展程序,在几乎所有网站上完全没有错误/警告,但是有少量页面,它们不会让它运行。例如。 chrome webstore本身。

我认为必须在清单中插入/更改某些内容,但由于“&lt; all_urls&gt;”的定义在比赛模式中我不知道是什么。

我使用Chrome开发者工具检查了“ui.html”的内容。内容必须插入每个网站,但在插件不起作用的网站上,它们不会出现。

也许谷歌会阻止代码注入? 所以我向你们提问:我该怎么办?

使用的代码

我的清单:

{
    "manifest_version": 2,

    "name": "Drag gestures",
    "description": "While holding down right mouse button, move left to go back and right to go forth the browser history. 
    Easy as pie but damn useful.",
    "version": "1.0",

    "options_page": "popup.html",
    "browser_action": {
        "default_icon": "icon-48px.png",
        "default_popup": "popup.html"
    },
    "icons": { 
        "16": "icon-16px.png",
        "48": "icon-48px.png",
        "128": "icon-128px.png" 
    },
    "background": {
        "page": "ui.html",
        "css": "ui.css",
        "persistent": false
    },
    "content_scripts": [
        {
            "js": ["jquery.js", "draggestures.js"],
            "html": ["ui.html"],
            "css": ["ui.css"],
            "matches": ["<all_urls>"],
            "run_at": "document_end"
        }
    ],
    "web_accessible_resources": [
        "jquery-1.10.2.min.map",
        "jquery.js",
        "draggestures.js",
        "ui.html",
        "ui.css",
        "move.png"
    ]
}

ui内容加载在draggestures.js:

// append the html with the move divs
$("body").append($('<div>').load(getHTML));

ui.html包含:

<div class="move" id="idle"></div>
<div class="move" id="back"></div>
<div class="move" id="forth"></div>

更新

问题是,有些网站阻止了javascript的注入,因此没有任何反应。得到了这个想法,感谢rsanchez下面链接的帖子。我经历过例如关于ebay产品描述的iframe中的不当行为。尚未找到解决方案。

更新2

Rob W向我指出了关于iframe的正确方向。我所要做的就是在“content-scripts”的清单中插入“”all_frames“:true,”。现在一切都很棒。

谢谢:)

0 个答案:

没有答案