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

Aki*_*ndu 2 microsoft-metro windows-8 winjs

我有一个metro应用程序,我想从另一个.js文件调用一个javascript函数?谁能帮我.

谢谢.

Dom*_*ton 5

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

File1.js:

function a() { b(); }
Run Code Online (Sandbox Code Playgroud)

File2.js:

function b() { alert("hi"); }
Run Code Online (Sandbox Code Playgroud)

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

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

File1.js:

WinJS.Namespace.define("MyNamespace", {
    firstFunction: function() { MyNamespace.secondFunction(); }
});
Run Code Online (Sandbox Code Playgroud)

File2.js

WinJS.Namespace.define("MyNamespace", {
    secondFunction: function() { alert("hi"); }
});
Run Code Online (Sandbox Code Playgroud)

default.html中:

<script src="/file1.js"></script>
<script src="/file2.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是, JavaScript没有内置动态加载"引用".你必须建立或使用自己的.

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

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