Re: [問題] 請問 w3schools.com 的 How to Handle …
※ 引述《operationcow (香蕉公車)》之銘言:
: 小弟我是看 w3school 學習網頁程式設計的
: 最近在研究 java script 的部份
: 有一個問題想來請教大家(已爬文)
: 在 http://www.w3schools.com/js/js_howto.asp
: 網頁中的 How to Handle Simple Browsers 部份
: <html>
: <body>
: <script type="text/javascript">
: <!--
: document.write("Hello World!");
: //-->
: </script>
: </body>
: </html>
: 如果是支援 java script 的 web browser
: 在執行完 java script 後的 HTML 應該是
: <html>
: <body>
: <script type="text/javascript">
: <!--
: Hello World
: </script>
: </body>
: </html>
: 那這樣在 <!-- 之後的不是應該都會被註解掉 @@?
: 感謝大家的回答 <(__)>
來自問自答一下, 有錯請指正(違反板規我會自刪 <(__)>)
我本來的問題重點是放在網頁的 page source 經過 web browser 執行
java script 後所產生的 HTML
所以下面我會從執行 java script step by step 相對應其 HTML 來做說明
在原本的 page source 被 web browser 自 web server 取得時
<html>
<body>
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
</body>
</html>
web browser 會先尋找介於 <script type="text/javascript"> </script>
(如果該 web browser 支援 java script 的話)
的 java script 來執行
我們可以看到這邊的 java script 有三行
1 <!--
2 document.write("Hello World!");
3 //-->
當執行第一行時, <!-- 並不屬於 java script 的標準語法
但是 java script 與一般的 shell/perl script 不一樣, 並非不能執行就
abort, 而是跳過
所以執行完(跳過)第一行後, 相對應的 HTML 為
<html>
<body>
</body>
</html>
接著執行完第二行時, 相對應的 HTML 變為
<html>
<body>
Hello World!
</body>
</html>
最後執行完第三行時, 因為 // 是屬於 java script 在註解時所用的語法
所以 web browser 在執行 java script 時, 會將整行視為註解
因此相對應的 HTML 依然是
<html>
<body>
Hello World!
</body>
</html>
於是最後在螢幕上出現 Hello World!
另一方面, 如果該 web browser 不支援 java script
則面對 page source
<html>
<body>
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
</body>
</html>
時並不會先去執行其中的 java script
因此對應的 HTML 便是
<html>
<body>
<script type="text/javascript"> <--- 這中間只是一般的 tag
<!--
document.write("Hello World!"); <--- 這行被註解掉
//-->
</script>
</body>
</html>
於是螢幕上便什麼都沒有
如果有錯請指正 <(__)>, 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.152.116
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):