类型disapearing脚本元素

问题描述:

我已经包含了脚本,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

问题与Incapsula

enter image description here

Minify static HTML被删除时,他被检测HTML5的doctype

我只是禁用它type属性

如果这是一个真正的问题,然后把当你使用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 
} 

按照已经只是将其更改为

<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