如何可靠地动态加载JavaScript文件?这将用于实现一个模块或组件,当'初始化'时,组件将根据需要动态加载所有需要的JavaScript库脚本.
使用该组件的客户端不需要加载<script>实现此组件的所有库脚本文件(并手动将标记插入其网页) - 只需要"主"组件脚本文件.
主流JavaScript库如何实现这一目标(Prototype,jQuery等)? 这些工具是否将多个JavaScript文件合并为一个可再发行的"构建"版本的脚本文件?或者他们是否动态加载辅助"库"脚本?
这个问题的补充:有没有办法在加载动态包含的JavaScript文件后处理事件? 原型document.observe适用于文档范围的事件.例:
document.observe("dom:loaded", function() {
// initially hide all containers for tab content
$$('div.tabcontent').invoke('hide');
});
Run Code Online (Sandbox Code Playgroud)
脚本元素有哪些可用事件?
考虑两个网页,分别在其正文中包含以下内容:
<body>
<script>
document.writeln('<textarea></textarea>')
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
和
<body>
<script>
var t = document.createElement('textarea');
document.body.appendChild(t);
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
(将它们视为更大的一部分,其中textareas 必须由JavaScript生成,不能硬编码到页面中).它们都产生相同的输出,但前者被认为是"坏",而后者被认为是"正确"的方式.(对?)
另一方面,如果你在页面中键入内容然后刷新它,或者转到其他地方然后点击Back,那么在前一种情况下,你在textarea中输入的内容会被保留,而在后面它会丢失.(至少在Firefox上.)
有没有办法使用后一种方法,仍然有一个有用的功能,即即使用户不小心点击刷新或通过后退按钮(至少在Firefox上)回来,用户输入表单的内容也会被保存?
我认为这是一个常见的情况,但很惊讶没有在这里找到答案。所以就这样...
我的 jquerymobile 网站中的某些页面正在使用外部 javascript。我不希望这些脚本加载到网站的每个页面上。它是移动的,并且加载速度应该很快。
如何加载外部 javascript,以便在需要引用时可以在 DOM 中使用它。我发现这篇 Stack 文章似乎有一个很好的技术:Using Javascript to load other external Javascripts
如果我动态加载这个外部 javascript,我应该使用 pageinit 事件吗?http://jquerymobile.com/test/docs/api/events.html
如果我使用此事件,当页面主体引用脚本时,脚本是否会加载到 DOM 中...或者我会收到对象引用错误吗?