2

我有一个 Metro 应用程序,我想在其中调用另一个 .js 文件中的 javascript 函数?谁能帮我。

谢谢你。

4

2 回答 2

5

javascript 中的所有脚本都合并到一个“脚本上下文”中。这意味着如果您有:

文件1.js:

function a() { b(); }

文件2.js:

function b() { alert("hi"); }

那么只要在调用 b 之前包含 file2.js ,一切都会好起来的。这意味着在你的 HTML 中应该包含<script>标签,你会很好的。

如果你使用的是 WinJS,一个更好的例子可能是:

文件1.js:

WinJS.Namespace.define("MyNamespace", {
    firstFunction: function() { MyNamespace.secondFunction(); }
});

文件2.js

WinJS.Namespace.define("MyNamespace", {
    secondFunction: function() { alert("hi"); }
});

默认.html:

<script src="/file1.js"></script>
<script src="/file2.js"></script>

然而,JavaScript 没有内置的“引用”动态加载。你必须建立或使用你自己的。

给这只猫剥皮的方法有很多,所以我建议你看看它们,然后决定哪种方法能满足你的需求。

  • 需要 JS
  • 在 WinJS 中内置页面控件/片段加载。如果你在 WinJS 中定义一个页面,当该页面的 html 文件被加载时,在 html 中声明的任何脚本都会被自动引入。原始片段加载也是如此。
于 2012-09-27T16:18:57.367 回答
0

您可以只在调用函数的文件之前引用包含函数定义的文件,就像如果它是浏览器而不是 Windows 8 应用程序一样。

事实上,甚至不需要那么多。如果您在 window.load 或 document.load 之后调用该函数,那么这意味着您引用的所有 javascript 文件都已加载,因此引用序列甚至无关紧要。

于 2012-09-27T15:06:12.490 回答