vol*_*ron 3 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';
Run Code Online (Sandbox Code Playgroud)
在Firebug中,我可以将鼠标悬停在样式窗口中的路径上,图像将弹出,显示图像在那里并且路径正确,但Firefox只是没有显示它.我甚至尝试重绘页面:
setTimeout(function(){element.className = element.className;},500);
Run Code Online (Sandbox Code Playgroud)
如果我使用原始http url(http://somedomain/bg.jpg)的路径,它将起作用,但试图避免这种情况.我不确定为什么渲染本地图像时出现问题.
Greasemonkey提供了一种方法,可以在不损害您的PC安全性的情况下执行此操作(请重新打开安全检查,有大量网站等待利用这些漏洞).
这是一种方法:
为获得最佳结果,请使用Greasemonkey用户脚本管理器(CtrlShiftA)卸载旧版本的脚本(如果有).
将所需的图像复制到包含脚本源的任何文件夹,而不是配置文件目录中安装的脚本.
例如,如果您的脚本源是C:\myScripts\,则复制bg.jpg到该文件夹.不要将temp文件夹用于脚本源.
将这些行添加到脚本的元数据部分:
// @resource MyBG_Image bg.jpg
// @grant GM_getResourceURL
Run Code Online (Sandbox Code Playgroud)然后您可以在脚本中使用此代码:
var b = document.body;
b.style.background = '#ccc url("' + GM_getResourceURL ("MyBG_Image") + '") repeat-x top left';
Run Code Online (Sandbox Code Playgroud)现在通过用Firefox打开文件来安装脚本,例如,在FF中使用File - > Open File菜单(或CtrlO)打开C:\myScripts\MyScript.user.js
Greasemonkey将提示(重新)安装脚本,然后本地文件bg将起作用.