在 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 的安全(请重新打开安全检查,有无数的网站正在等待利用此类漏洞)。
这是一种方法:
为获得最佳效果,请使用 Greasemonkey 用户脚本管理器(CtrlShiftA)卸载旧版本的脚本,如果有的话。
将所需图像复制到包含脚本源 的任何文件夹,不是 profile directory 中安装的脚本.
例如,如果您的脚本源 位于
C:\myScripts\
中,请将bg.jpg
复制到该文件夹。不要将临时文件夹用作脚本源。将这些行添加到脚本的元数据部分:
// @resource MyBG_Image bg.jpg // @grant GM_getResourceURL
然后您可以在脚本中使用此代码:
var b = document.body; b.style.background = '#ccc url("' + GM_getResourceURL ("MyBG_Image") + '") repeat-x top left';
现在通过使用 Firefox 打开文件来安装脚本,例如,在 FF 中使用文件->打开文件菜单(或 Ctrl O) 打开
C:\myScripts\MyScript.user.js
Greasemonkey 将提示(重新)安装脚本,然后本地文件 bg 将起作用。
关于javascript - Greasemonkey - 图像不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250187/