2011-11-14 73 views
2

爲什麼腳本標記和內容不會顯示在div標記內部,例如。javascript腳本隱藏在源視圖中

我有以下代碼:

<div> 
        <!-- BEGIN: YTV Syndicate script --> 
        <!-- Edit Section--> 
        <script type="text/javascript"> 
         alert('hello!'); //check if scripts actually works 
         var YTVSYND = {} 
         YTVSYND.key = 'xxx'; 
         YTVSYND.template = {} 
         YTVSYND.template.name = 'ytv' 
         YTVSYND.template.size = 'size300x250' 
         YTVSYND.soc = '<%= Model.Code %>'; 
         YTVSYND.type = 'career'; 
        </script> 
        <!-- END: EDIT --> 
        <!-- === DO NOT EDIT BELOW=== --> 
        <script type="text/javascript"> 
         var ytvSyndUrl = (location.protocol == 'https:') ? 'https://' : 'http://'; 
         ytvSyndUrl += 'syncdn.youniversitytv.com/synapi/embed/ytv-embed-api.js'; 
         ytvSyndUrl = "/Scripts/ytv-embed-api.js" 
         var str = "<scr" + "ipt type='text/javascript' src='" + ytvSyndUrl + "'>"; 
         str += "<"; 
         str += "\/scr" + "ipt>"; 

         var script = document.createElement('script'); 
         script.type = 'text/javascript'; 
         script.src = ytvSyndUrl; 

         $("#fgm").html(str) 
        </script> 
        <!-- EOF: YTV Syndicate script --> 
        </div> 

它只是執行,但是當我檢查源它只顯示評論

<!-- BEGIN: YTV Syndicate script --> 
    <!-- Edit Section--> 
    <!-- END: EDIT --> 
    <!-- === DO NOT EDIT BELOW=== --> 
    <!-- EOF: YTV Syndicate script --> 

,沒有腳本標籤和實際腳本的跡象。

注意:這是在jquery模式中,我有一個正常頁面內的相同腳本,它顯示在源視圖中。

1st

2nd

+2

是什麼瀏覽器您使用?你如何看待源代碼? –

+1

您是否正在檢查文檔視圖(使用Firebug或Chrome開發工具)或通常通過右鍵單擊頁面並選擇「查看源」選項顯示的實際源? –

+0

這些都不重要,因爲jQuery去掉了'

3

使用Web開發人員在加載一些HTML內容進入DOM動態地使用jQuery,它完全去掉<script>標籤。在大多數情況下,它會對它們進行評估(使用「eval()」或多或少的瀏覽器),但它們在DOM中不可用。

您可以在jQuery源代碼starting around this point中看到代碼。

編輯 —請注意,我假設,你動態地添加一些HTML。如果你不這樣做,那麼<script>標籤是在DOM中,你將能夠看到他們在Firebug等

+0

任何解決方法? –

+0

@mircea。請問爲什麼需要在源代碼中顯示腳本?它有什麼不同? –

+0

我試圖弄清楚爲什麼它有這種行爲。我的問題是腳本被執行,但最後一行「$(」#fgm「)。html(str)」覆蓋整個文檔而不是「fgm」div。 –