我写了一些JavaScript来在用户滚动时移动广告横幅。但是,除了Internet Explorer之外,它的每个浏览器都能正常工作......好像我的JS甚至没有开始...... 我正在使用最新的IE9。
我是如何调用的:
<html>
<head>
<script src="./js/move-it.js" type="text/javascript"></script>
</head>
<body>
...
<div id="bird">
<iframe ...>...</iframe>
</div>
<script type="text/javascript">
start(); // method in move-it.js
</script>
</body>
是的,有谁能告诉我如何防止横幅以一种不错的方式撞到我的页脚?我试图在下方广告上方放置一个div作为“塞子”并使用它的“offset-top”属性,但我想它总是给我一个太小的值,即它一直在崩溃...... -.-
干杯
答案 0 :(得分:5)
我设法让它现在起作用。
问题是IE不允许在JavaScript中使用const
修饰符。我只是将它们改为var
并且效果很好。
答案 1 :(得分:4)
IE,所有版本都不能容忍PHP程序员常见的错误。以下是IE不接受的Javascript语法列表,适用于所有函数,包括AJAX:
(这些IE Javascript语法错误不是Opera,Chrome和Firefox中的错误。)
您不能在函数声明参数中设置默认变量值function thisFunction(something='x'){ thingy.here;}
是不允许的,并且在调用thisFunction()
时将读取为未声明的函数。
将对象作为函数参数传递可能会产生意外结果:function(someObject)
可能会也可能不会起作用,具体取决于上下文。
未声明的变量会停止脚本
event.preventDefault();
无法在被调用函数内调用,并将停止脚本
event.preventDefault();
必须首先在所有其他函数之前的事件引用中声明...在其他浏览器中不是这样。所以IE默认情况下必须异步操作......
当PHP程序员首次学会享受Javascript的同步特性作为该语言的第1课时,可能不会出现这种情况。此示例在&#39; a&#39;中不起作用(不起作用)。标记直接放入链接的标记
onclick="function() {
if(typeof someFunction === 'function') {
event.preventDefault();
someFunction('anyParameter');
};"
当您在未实现或声明函数someFunction()的页面上使用相同的代码时。多么浪费时间!
onclick='clickChild(this);'
没有在IE上工作......我不知道为什么。它实际上将停止包含的链接,不会发生任何事情。似乎与preventDefault的上述行为相矛盾,后者仅作为事件引用中的第一个函数,如果不首先调用,则将遵循包含链接。因此IE中的逻辑不一致。
---截至今天,2017年1月21日,在今天的谷歌Chrome更新中,上述功能在Chrome中也不起作用。
在表单中,按键&#39;标签不会正确返回表单提交的值。这可以在新的IE版本中修复,或者可能不是。对于我当前的项目:yad1.org,多语言提交按钮名称需要按钮标记,这些按钮名称需要所有语言的相同值。
结论:应该从Windows中移除IE并永远忘记。
真正浪费时间调试。 IE需要与程序员友好的Javascript世界取得联系。
答案 2 :(得分:0)
如果您不必自定义Internet安全设置,请单击“默认级别”。然后做第4步
如果必须自定义Internet安全设置,请执行以下步骤:
一个。单击自定义级别 湾在“安全设置 - Internet区域”对话框中,单击“脚本”部分中的“为活动脚本启用”。
单击“上一步”按钮返回上一页,然后单击“刷新”按钮以运行脚本。
答案 3 :(得分:0)
相当长的一段时间后......在IE11的客户机器上遇到同样的问题(Firefox&amp; Edge工作正常)。 (UNC)
的文件文件://///server/share/directory/index.html
已正确加载,但未激活javascript。
这种情况下的解决方案:
区域本地Intranet
现在可行。