我已经浏览过类似的线程,并尝试了所有建议无效的东西。在页面加载后强制重绘/重新绘制firefox中的DOM元素
我想要的页面通过改变它的src属性一旦我有一个新的位置加载之后更换的图像。我想用本地图像替换图像。
直接通过img.src = urlString改变src属性;或使用setAttribute()方法设置src,但不重新绘制加载页面中的图像。我用window.alert(img.src);检查src属性是否真的发生了变化。
我用下面的代码片段从here强制重绘。
var n = document.createTextNode(' ');
var disp = img.style.display;
img.appendChild(n);
img.style.display = 'none';
img.style.display = disp;
n.parentNode.removeChild(n);
似乎没有任何工作。是因为页面已加载还是因为我正在使用本地文件?
本地文件在%AppData%\ temp,这可能是一个权限问题吗?浏览器控制台不会引发任何错误。我不想刷新整个页面,因为有人可能在表单中输入内容,并且他们将丢失数据。
任何输入,将不胜感激。谢谢。
编辑:一点澄清。 我使用扩展在每个窗口中注入一个脚本。一旦一个窗口加载了一个页面,我将这些图像发送给另一个脚本进行处理,然后该脚本将一个事件返回到具有一个位置的窗口到一个新文件。一旦事件被捕获,就会调用一个函数来改变特定图像的src属性。我检查了所有内容,src被更改,但浏览器不显示新图像。
另一编辑: 似乎没有权限问题,因为我可以使用file:/// pathtofile/从地址栏访问该文件。使用外部网址(例如http://),即使在网页加载后,它也可以正常工作。我怎样才能使它与当地的网址合作?
如果将不会中断您的文档流程,你可以删除旧的图像(通过删除它的DOM节点),并更换与新的一个。 – Zemljoradnik
我无法确定。我不知道我得到了什么网页,所以我不知道会有什么样的损害。 –