2014-10-19 65 views
0

我已經包含了腳本,lookes像類型disapearing腳本元素

<script type="text/javascript" src="//www.domain.com/script.js?<?php echo rand(10000,99999)?>">

結果明顯:

<script type="text/javascript" src="//www.domain.com/script.js?55872"></script>

當我刷新頁面的問題發生,類型屬性將消失,結果將更改爲

<script src="//www.domain.com/script.js?82554"></script>

網站存儲在Incapsula,但我嘗試禁用所有的功能和它的仍然是相同的。 編輯:顯然,當我試圖禁用它,我沒有等到足夠多的時間,它沒有踢中

我想這可能是因爲DOCTYPE聲明 - ><!DOCTYPE html>因爲HTML5不需要類型聲明。如果是這樣,我該如何強制他保留類型屬性?

我知道在HTML5文檔類型中,類型屬性是無用的,但是第三方公司在它們的選擇器中使用它,我必須將它保留在那裏。

+0

什麼樣的軟件使用一個選擇'script'的'type'屬性,什麼樣的選擇呢?你的意思是CSS選擇器? – 2014-10-19 19:30:47

+0

他們正在使用jQuery選擇器來檢查它們的腳本是否存在..類似於'$(「script [type * = javascript] [src * = somefile]」)'',所以如果沒有type屬性,他不會識別他們的腳本 – 2014-10-19 21:26:41

+1

如果他們在腳本中檢查了一個變量而不是文檔本身,它會更加健壯......這就是我的標準「已加載」檢查。只是因爲標籤在那裏並不意味着它已經加載! – nepeo 2014-10-21 10:11:00

回答

0

問題與Incapsula

enter image description here

Minify static HTML被刪除時,他被檢測HTML5的doctype

我只是禁用它type屬性

1

如果這是一個真正的問題,然後把當你使用PHP呼應出一個隨機數在之前的<body/>

var elms = document.getElementsByTagName('script'); // get the script tags 
for(var i = 0; i < elms.length; i++) { 
    elms[i].setAttribute('type', 'text/javascript'); //set the type attribute 
} 
0

按照已經只是將其更改爲

<script <?php echo 'type="text/javascript"'; ?> src="//www.domain.com/script.js?<?php echo rand(10000,99999)?>"> 
+0

它工作嗎? – Billy 2014-10-19 21:26:03