【问题标题】:Running a JavaScript file via Safari通过 Safari 运行 JavaScript 文件
【发布时间】:2014-08-02 14:10:08
【问题描述】:

开始一个项目,但开局不佳。现在,我只想运行一个 .js 文件并让它打开一个浏览器窗口。我正在使用 HTML 文件通过 Safari 执行 .js。我检查了 Safari 中的控制台,它似乎可以很好地找到/运行文件,没有错误。请参阅下面的代码。任何帮助将不胜感激。

JavaScript

function doWork() {

myWindow = window.open("http://www.google.com","mywindow");

}

HTML

<HTML>
<Body>
    Local Site for running weatherGetter script.
<script src="work.js"> </script>
</Body>
</HTML>

【问题讨论】:

    标签: javascript html safari window.open


    【解决方案1】:

    您的 javascript 文件中的函数未使用。

    <HTML>
    <Body onload="doWork()">
        Local Site for running weatherGetter script.
    <script src="work.js"> </script>
    </Body>
    </HTML>
    

    解决它

    【讨论】:

      【解决方案2】:

      你已经定义了你的函数 doWork() 但你还没有真正调用它。

      你的 JS 应该是这样的:

      function doWork() {
      
         myWindow = window.open("http://www.google.com","mywindow");
      
      }
      
      doWork();
      

      另外,你的 html 结构不正确。

      【讨论】:

      • jsbin.com/zupoyolo/1 - 有一个 JSBIN。它对我来说很好,我正在使用 safari :)
      • 如果是这样,这是对 Safari 弹出窗口拦截器的一个非常令人震惊的控诉;在加载时阻止弹出窗口真的非常基本。任何体面的浏览器都会阻止弹出窗口。当然不能在 Chrome、Firefox、IE9、IE10、IE11 中运行,甚至连 IE8 都可以阻止它。我唯一方便的 Safari 是我的 iPhone (iOS 7) 上的 iOS Safari,它在那里也不起作用。
      【解决方案3】:
      1. &lt;head&gt; 丢失,因此 HTML 无效
      2. 您没有在任何地方调用该函数。所以这是多余的。
      3. 路径可能有误
      4. 您尚未学习基础知识。请这样做,以免自己头疼。

      【讨论】:

        【解决方案4】:

        对于任何现代浏览器,您都无法打开窗口,除非直接响应用户操作

        正如 mickzer 所指出的,您正在定义您的函数,但没有调用它。但即使你添加了对它的调用,浏览器也会阻止窗口打开(在任何体面的浏览器中)。

        要成功打开窗口,请挂钩用户事件并在那里调用您的 doWork 函数,例如响应 click 处理程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-25
          • 2010-10-19
          • 1970-01-01
          • 2014-01-03
          • 2020-07-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多