【问题标题】:Getting a content script to append image on page load获取内容脚本以在页面加载时附加图像
【发布时间】:2013-05-08 17:15:31
【问题描述】:

我刚刚开始学习如何为 google chrome 制作扩展程序。到目前为止,我已经有了非常基本的了解,所以我想尝试一些小的东西。

现在我正在尝试在每次加载特定页面时将图像附加到特定页面上的特定 div。扩展正确加载,但 javascript 代码似乎永远不会运行,并且图像永远不会加载。

这是我目前拥有的 manifest.json 文件:

{
    "manifest_version": 2,
    "name": "Icon Creator",
    "description": "Creates a custom icon for page",
    "version": "1.0",

    "content_scripts": [
    {
        "matches": ["file:///home/tijko/documents/learning/javascript/test_page.html"],
        "css": ["sample.css"],
        "js":["trial.js"]
    }
    ],
    "icons": {"icon": "icon.jpg"},
    "web_accessible_resources":["trial.js"]
}

和javascript:

var test = function() {
    custom_icon = document.createElement("img");
    target = document.getElementById("location");
    custom_icon.src = "icon.png";
    target.appendChild(custom_icon);
}
test()

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension


    【解决方案1】:

    您是否正在尝试加载您自己的扩展程序的icon.png?现在您正尝试在本地页面的域和路径上加载icon.png。相反,您应该这样做:

    custom_icon.src = chrome.runtime.getURL("icon.png");
    

    引用您的扩展程序的icon.png

    另外,您必须在您的web_accessible_resources 中列出icon.png。此外,您不需要在您的web_accessible_resources 中列出trial.jsvery specialized use cases 除外)。

    最后,您需要通过选中chrome://extensions 中扩展程序列表下的相应框来批准您的扩展程序访问file:// 页面。

    【讨论】:

    • 感谢您的回复,我已经着手对custom_icon.src = chrome.extension.getURL("icon.jpg") 进行了编辑,并确保从web_accessible_resources 中删除trial.js,然后输入icon.jpg。最后,file:// 已经在chrome://extensions 下进行了检查。仍然没有经过这些更改的图像。
    • @tijko 你真的打电话给test吗?也就是说,您的 JavaScript 是否对您的整个内容脚本进行了采样?最后你需要一个 test() 调用,否则你的函数永远不会真正运行。
    • 是的,我在trial.js 文件的末尾调用了函数test,但这仍然不起作用。那时我开始认为我需要一个特定的功能,比如addEventListener。我已经编辑了我的帖子以显示这一点。
    • 当我仔细检查文件时,我发现清单路径已关闭。所以chrome.extension.getURL() 方法成功了。非常感谢您的帮助,谢谢!
    • 您可能想要更新答案中的方法,因为它已被弃用:developer.chrome.com/extensions/extension#method-getURL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多