如何在Metro应用程序中的另一个js文件中调用js函数?

时间:2012-09-27 14:34:16

标签: windows-8 microsoft-metro winjs

我有一个metro应用程序,我想从另一个.js文件中调用javascript函数?任何人都可以帮助我。

谢谢。

2 个答案:

答案 0 :(得分:5)

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

File1.js:

function a() { b(); }

File2.js:

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

然后只要在调用b之前包含file2.js,一切都会好的。 这意味着在您的HTML中应该包含<script>标记,并且您会很好。

如果您使用的是WinJS,更好的例子可能是:

File1.js:

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

File2.js

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

default.html中:

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

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

有很多方法可以给这只猫做皮,所以我建议你看看它们,然后根据你的需要来决定它们。

  • Require JS
  • 在WinJS中内置页面控件/片段加载。如果在WinJS中定义页面,当加载该页面的html文件时,将自动引入在html中声明的任何脚本。原始片段加载也是如此。

答案 1 :(得分:0)

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

事实上甚至没有那么多是必要的。如果您在window.load或document.load之后调用该函数,那么这意味着您已经加载了所有引用的javascript文件,因此参考序列甚至不重要。