javascript - Greasemonkey - 图像不显示

标签 javascript css greasemonkey background-image

在 Greasemonkey 中,我尝试使用在线找到的图像的本地副本。图片暂存于C:\temp。

这行不通:

var b = document.body;
b.style.background = '#ccc url("file:///C:/temp/bg.jpg") repeat-x top left';

在 Firebug 中,我可以将鼠标悬停在样式窗口中的路径上,然后会弹出图像,显示图像在那里并且路径是正确的,但 Firefox 就是不显示它。我什至尝试重绘页面:

  setTimeout(function(){element.className = element.className;},500);

如果我使用原始 http url (http://somedomain/bg.jpg) 的路径,它会起作用,但要尽量避免这种情况。我不确定为什么它在渲染本地镜像时会出现问题。

最佳答案

Greasemonkey 提供了一种方法来做到这一点,而且不会损害您 PC 的安全(请重新打开安全检查,有无数的网站正在等待利用此类漏洞)。

这是一种方法:

  1. 为获得最佳效果,请使用 Greasemonkey 用户脚本管理器(CtrlShiftA)卸载旧版本的脚本,如果有的话。

  2. 将所需图像复制到包含脚本 的任何文件夹,不是 profile directory 中安装的脚本.

    例如,如果您的脚本 位于C:\myScripts\ 中,请将bg.jpg 复制到该文件夹​​。不要将临时文件夹用作脚本源。

  3. 将这些行添加到脚本的元数据部分:

    // @resource MyBG_Image bg.jpg
    // @grant    GM_getResourceURL
    
  4. 然后您可以在脚本中使用此代码:

    var b = document.body;
    b.style.background = '#ccc url("' + GM_getResourceURL ("MyBG_Image") + '") repeat-x top left';
    
  5. 现在通过使用 Firefox 打开文件来安装脚本,例如,在 FF 中使用文件->打开文件菜单(或 Ctrl O) 打开 C:\myScripts\MyScript.user.js
    Greasemonkey 将提示(重新)安装脚本,然后本地文件 bg 将起作用。

关于javascript - Greasemonkey - 图像不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250187/

相关文章:

html - Vuetify v-data-table固定 header 不起作用

synchronization - 同步 GM_xmlhttpRequest 异步作用?

javascript - 是否可以在 Controller 中从 JSON 对象更改为 JSON 数组

javascript - 如何加快我的 jQuery 粘性页脚的加载时间?

javascript - 使用CSS3从最后一个位置随机旋转图像

jquery - Greasemonkey 如何只为@media 打印应用 CSS 规则?

javascript - 用于查找带有文本的节点的 XPath + 所有符合特定条件的后代和 sibling

Javascript 和移动浏览器宽度问题

javascript - 如何移动由 CSS 样式表设置样式的元素?

javascript - Facebook 图库/灯箱 - 加载时居中图像