1

我查看了类似的线程并尝试了那里建议的所有内容,但均无济于事。

我试图在页面加载后通过更改它的 src 属性来替换图像,一旦我有了新的位置。我想用本地图像替换图像。

通过img.src = urlString;直接改变 src 属性 或使用setAttribute()方法设置 src 但不重绘加载页面中的图像。我使用了 window.alert(img.src); 检查 src 属性是否真的改变了。

我已使用此处的以下代码片段来强制重绘。

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://),即使在页面加载后它似乎也可以工作。如何使其与本地网址一起使用?

4

1 回答 1

1

Firefox 不允许不受信任的页面以file://任何方式从 URI 加载数据。file://这包括从URI加载图像。

要了解原因,请考虑如果页面<img src="file:///dev/tty">在 Linux 或 Mac 上运行会发生什么,例如。如果您尝试读取等内容,某些 Windows 版本上存在类似问题file:///c:/con...

于 2013-10-22T02:31:21.880 回答