JavaScript未在Internet Explorer中运行

时间:2012-03-17 14:33:25

标签: javascript html internet-explorer

我写了一些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>

网站:http://lolkitten.org

是的,有谁能告诉我如何防止横幅以一种不错的方式撞到我的页脚?我试图在下方广告上方放置一个div作为“塞子”并使用它的“offset-top”属性,但我想它总是给我一个太小的值,即它一直在崩溃...... -.-

干杯

4 个答案:

答案 0 :(得分:5)

我设法让它现在起作用。 问题是IE不允许在JavaScript中使用const修饰符。我只是将它们改为var并且效果很好。

答案 1 :(得分:4)

IE,所有版本都不能容忍PHP程序员常见的错误。以下是IE不接受的Javascript语法列表,适用于所有函数,包括AJAX:

(这些IE Javascript语法错误不是Opera,Chrome和Firefox中的错误。)

  1. 您不能在函数声明参数中设置默认变量值function thisFunction(something='x'){ thingy.here;}是不允许的,并且在调用thisFunction()时将读取为未声明的函数。

  2. 将对象作为函数参数传递可能会产生意外结果:function(someObject)可能会也可能不会起作用,具体取决于上下文。

  3. 未声明的变量会停止脚本

  4. event.preventDefault();无法在被调用函数内调用,并将停止脚本

  5. event.preventDefault();必须首先在所有其他函数之前的事件引用中声明...在其他浏览器中不是这样。所以IE默认情况下必须异步操作......

    当PHP程序员首次学会享受Javascript的同步特性作为该语言的第1课时,可能不会出现这种情况。此示例在&#39; a&#39;中不起作用(不起作用)。标记直接放入链接的标记

    onclick="function() { 
        if(typeof someFunction === 'function') { 
            event.preventDefault(); 
            someFunction('anyParameter'); 
        };"
    

    当您在未实现或声明函数someFunction()的页面上使用相同的代码时。多么浪费时间!

  6. onclick='clickChild(this);'没有在IE上工作......我不知道为什么。它实际上将停止包含的链接,不会发生任何事情。似乎与preventDefault的上述行为相矛盾,后者仅作为事件引用中的第一个函数,如果不首先调用,则将遵循包含链接。因此IE中的逻辑不一致。 ---截至今天,2017年1月21日,在今天的谷歌Chrome更新中,上述功能在Chrome中也不起作用。

  7. 在表单中,按键&#39;标签不会正确返回表单提交的值。这可以在新的IE版本中修复,或者可能不是。对于我当前的项目:yad1.org,多语言提交按钮名称需要按钮标记,这些按钮名称需要所有语言的相同值。

    结论:应该从Windows中移除IE并永远忘记。

    真正浪费时间调试。 IE需要与程序员友好的Javascript世界取得联系。

答案 2 :(得分:0)

  1. 在“工具”菜单上,单击“Internet选项”,然后单击“安全”选项卡。
  2. 单击Internet区域。
  3. 如果您不必自定义Internet安全设置,请单击“默认级别”。然后做第4步   
    如果必须自定义Internet安全设置,请执行以下步骤:

    一个。单击自定义级别 湾在“安全设置 - Internet区域”对话框中,单击“脚本”部分中的“为活动脚本启用”。

  4. 单击“上一步”按钮返回上一页,然后单击“刷新”按钮以运行脚本。

答案 3 :(得分:0)

相当长的一段时间后......在IE11的客户机器上遇到同样的问题(Firefox&amp; Edge工作正常)。 (UNC)

的文件
  

文件://///server/share/directory/index.html

已正确加载,但未激活javascript。

这种情况下的解决方案:

  1. “互联网选项”&gt;标签“安全”&gt;区域“本地内联网”&gt;按钮“站点”&gt;取消激活第三个选项“包括所有网络路径(UNC)”(需要重新加载页面)
  2. “互联网选项”&gt;标签“安全”&gt;区域“可信站点”&gt;按钮“站点”&gt;将“file:// server”添加到网站(需要IE重启)
  3. 区域本地Intranet

    Zone Local intranet

    现在可行。