2011-01-25 13 views
1

基本上,我有在那裏我只允許創建圖像的情況下,但我想在我決定在源上運行一個腳本,所以我不知道這是否可能:是否可以使用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:」是不引用引號的邪惡。這是特殊情況。

+0

可能重複:http://stackoverflow.com/questions/116967 – user123444555621 2011-01-25 23:50:42

+0

我同意。 123456 – sprugman 2011-01-26 06:40:26

回答

1

創建一個函數,收集您需要的任何數據並將其發送到服務器(通過XMLHttpRequest或任何您喜歡的方法)。創建一個函數,檢查服務器的響應並決定使用哪個圖像。然後,您可以將URL設置爲直接圖像:

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

編輯:尋址評論。

如果你只能使用img元素本身,那麼你是對的,img.onload是你想要的。如果不止有幾行腳本,導入腳本似乎是合理的。也許這是比document.write清潔劑一點點:

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

如果你想要在服務器上完成。你可以使src屬性指向你的服務器端腳本,並在執行任何你想要的之後回寫圖像。

不知道這是否適合您的問題。

+0

我需要收集客戶端上的一些數據,然後將其發送到服務器進行處理,然後獲取真實圖像.... – sprugman 2011-01-25 22:36:50

相關問題