IE 8的条件注释不起作用
Conditional comment for IE 8 not working
我正在尝试为IE 8或更低版本的用户更改iFrame的SRC
属性。
这是我的代码:
<script>
var i_am_old_ie = false;
<!--[if lte IE 8]>
i_am_old_ie = true;
<![endif]-->
</script>
<script type="text/javascript">
$(document).ready(function() {
if(i_am_old_ie) {
$("#shop").attr("src","shopping_cart/browser_support.html");
} else {
$("#shop").attr("src","shopping_cart/index.html");
}
});
</script>
它检测到它是IE…,但仍然将所有IE用户发送到shopping_cart/browser_support.html
。即使我使用IE 9,它也会把我送到那里。7岁或8岁也是如此。
但它将所有其他未使用IE的用户发送到shopping_cart/index.html
(这是正确的)。
我的代码出了什么问题?
谢谢!
您不能在脚本标记中插入。它需要在外面。
<script>
var i_am_old_ie = false;
</script>
<!--[if lte IE 8]>
<script>
i_am_old_ie = true;
</script>
<![endif]-->
正如前面提到的,您不能在<script>
标记之间使用HTML条件语句。
然而,这应该有效:
if (document.all && !document.getElementsByClassName) {
i_am_old_ie = true;
}
以上仅在IE8或低于的版本中运行
编辑:
一些不错的例子链接
JavaScript中的条件注释有不同的语法。@cc_on在JavaScript中是什么意思?有详细信息。
维基百科的条件性评论页面有一个使用它进行版本切换的例子
<script> /*@cc_on @if (@_jscript_version == 10) document.write("You are using IE10"); @elif (@_jscript_version == 9) document.write("You are using IE9"); @elif (@_jscript_version == 5.8) document.write("You are using IE8"); @elif (@_jscript_version == 5.7 && window.XMLHttpRequest) document.write("You are using IE7"); @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest)) document.write("You are using IE6"); @elif (@_jscript_version == 5.5) document.write("You are using IE5.5"); @else document.write("You are using IE5 or older"); @end @*/ </script>
条件HTML注释仅适用于HTML。
JavaScript不是HTML。
这通常不是一个好主意,特征检测是值得考虑的,但如果使用jQuery,你可以做到:
var i_am_old_ie = $.browser.msie && ($.browser.version <= 8);
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- IE 8的条件注释不起作用
- 接点注释上的右键不起作用
- Javascript注释不起作用.无法注释掉注释
- click函数不起作用,如果我注释$('#tablenew').dataTable({});它有效,但我
- JavaScript intellisense注释不起作用
- Disqus 注释在聚合物自定义元素中不起作用