quirksmode網站的製作者發現了一個有趣的技巧.CSS中的background-image屬性可以插入Javascript.遺憾的是目前只有IE5/6支援.(IE7我沒有條件測試)
運行代碼框
<style type="text/css">
#test {
border: 1px solid #000000;
padding: 10px;
background-image: url('javascript:alert("看到我了麼?");')
}</style>
<div id="test">顯示訊息哦</div>
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
如果我們在CSS中多個不同的id選取器中都插入了Javascript.那麼只有前面的XHTML中調用了該id選取器.才會運行該Javascript代碼.而沒有調用的id選取器,其中的代碼不會運行.
如下,我們定義了兩個id選取器.test1和test2.但是並沒有在xhtml中調用test2.所以你仍然只能看到test1中的javascript代碼.
運行代碼框
| 代碼如下 |
複製代碼 |
<style type="text/css"> #test1 { border: 1px solid #000000; padding: 10px; background-image: url('javascript:alert("看到我了麼?");') } #test2 { border: 1px solid #000000; padding: 10px; background-image: url('javascript:alert("你看不到我!");') }</style> <div id="test1">顯示訊息哦</div>
|
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
除了顯示訊息之外,作者試圖用這個技巧來產生隨機的背景圖片.
background-image: url(javascript: document.write('pix/test'+(parseInt(Math.random()*5)+1)+'.gif'));
遺憾的是,經過多次嘗試,這個想法最終被認為是不可能的.我自己也實驗了一下.並不能產生隨機的背景圖片.只是顯示了背景的東西.並且覆蓋了.原來的內容而且終止了瀏覽器繼續解釋運行xhtml的其餘部分.