2010-10-15 70 views
1

對於一些複雜的原因,我需要標註一些JavaScript作爲「特殊」,是這樣的:馬克一些JavaScript塊作爲「特殊」

<script type="text/javascript" someattribute="special"> 
    var special = "I'm special!"; 
</script> 

<script type="text/javascript" someattribute="special" src="special.js"> 
</script> 

是否有可能做到這一點在與XHTML標準規定的方法?根據http://www.w3schools.com/tags/tag_script.asp,腳本標記的所有屬性都具有非常特定的功能。但有沒有解決方法?

這個想法是將標籤作爲XML元素提取出來,並在服務器級別將它們放到另一個頁面,然後到達瀏覽器,所以我需要在頁面的實際XML中使用特殊標記。在瀏覽器級別使用Javascript加載頁面後添加它將不起作用。

任何想法?


編輯:

對於標準的符合性的緣故,我不能使用HTML5。我試圖遵守的整個系統是XHTML 1.0。

現在我已經有時間去思考它了,我認爲在腳本的src中添加一個GET變量或一個錨點可能只是訣竅。例如,在前面的例子來代替,做

<script type="text/javascript" src="special.js?special"></script> 

<script type="text/javascript" src="special.js#special"></script> 

我現在就試試吧。

+0

有沒有理由不能使用HTML5?如果你想使用XHTML,那麼你可以使用XHTML5。你甚至可以像通常編寫XHTML 1.0一樣編寫它,只需使用HTML5文檔類型(即使doctype不是技術上需要的,因爲XHTML沒有quirksmode,因此可以安全地忽略doctype。 – 2011-01-10 01:51:50

+0

是的,那裏是一個原因,該網站主要是XHTML 1.0,很少有網頁是動態的,該組織非常關注如何使整個站點符合XHTML 1.0標準並支持這一點,他們不支持其他任何內容。所以任何改變都是非常重要的,如果帶有HTML5的頁面將其代碼解壓並插入到XHTML外部頁面中,它就可以工作,但這會很混亂,並且內部代碼無法在其中進行可靠的測試自己的,在XHTML中做這一切使得長遠來說更有意義。然而,使用GET變量完成了這項工作。 – eje211 2011-01-13 14:11:28

回答

0

我回頭看了很久以後的這篇文章。這只是說我在編輯中寫的內容確實有效,並符合標準。

0

如果您使用HTML5,你可以這樣做:

<script data-special='true'> 
</script> 

,它會驗證。但是,除了失敗的驗證之外,您可以放棄將任意屬性放在標籤上,它通常會起作用。使用「數據」HTML5約定是一種安全的方式,因爲您有0%的機會意外觸發了一些奇怪的行爲。

請注意,對於HTML5,您不需要「type」屬性,實際上它已經在流行的Javascript界面​​中棄用了。

0

使用數據 - *屬性....他們是符合標準:

<script data-foo="bar"> 
0

隨着XHTML,你可以創建自己的DTD,並用自己的DTD,你可以輕鬆地添加一個額外的屬性添加到腳本標記。但是...因爲您可能想在真實生活網站中使用此功能,因此Internet Explorer不支持該功能。

所以我覺得這些都是你的選擇:

  • 包裝標籤周圍將其標記爲特殊(完全符合標準,工作在每一個瀏覽器,但可能不適合你的檢查工作)
  • 堅持的標準和創建自己的DTD,這將一定程度上打破IE支持
  • 忽略的標準,只是增加一些屬性(沒有人除了W3驗證纔會真正關心)

如果選擇最後一個選項,我建議使用id屬性。其中,儘管script標籤不受支持,但在htmlxhtml中都支持,所以瀏覽器不會太在意它,大多數驗證器也不會在乎。

+0

是否有標籤可以在頭部或身體中寫入? – eje211 2010-10-15 15:34:17

+0

這將是隻是身體的東西,它的頭部內部有點困難。 – Wolph 2010-10-16 15:49:13