是否可以使用javascript:pseudo-protocol设置图像的来源?

时间:2011-01-25 22:19:44

标签: javascript

基本上,我有一个上下文,我只允许创建一个图像,但我想在决定源代码之前运行一个脚本,所以我想知道这是否可行:

<img src="javascript:{load a remote script and run it to figure out the source}" />

我提出的解决方法是:

<img src="any-old-image.gif" onload="document.write('<scr' + 'ipt src=\"http://mysite-script.js\"'></scr' + 'pt>');" />

但我希望有一点清洁可能。

P.S。我知道“javascript:”是引用 - 不引用的邪恶。这是一种特殊情况。

2 个答案:

答案 0 :(得分:1)

创建一个函数,收集您需要的任何数据并将其发送到服务器(通过XMLHttpRequest或您喜欢的任何方法)。创建一个功能,检查服务器的响应并决定使用哪个图像。然后,您可以直接将网址设置为图像:

document.getElementById("myImage").src = myImageSrc;  

编辑:发表评论。

如果你只能使用img元素,那么你是对的,img.onload就是你想要的。如果不仅仅是几行脚本,导入脚本似乎是合理的。也许这比document.write更清洁:

document.body.appendChild(document.createElement("script")).src =
    "http://mysite.com/myscript.js";

答案 1 :(得分:0)

如果你想要什么可以在服务器上完成。你可以让src属性指向你的服务器端脚本,并在执行你想要的任何内容后回写图像。

不确定这是否适合您的问题。