我可以在网页上嵌套JavaScript脚本吗
Can I nest JavaScript scripts on a webpage?
在JSP文件中,我有以下行:
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=false"></script>
如果JS变量(XY.isChina)为false,有没有办法只执行该行?
也许,我可以用嵌套做这样的事情吗?
<script>
if (XY.isChina === false) {
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=false"></script>
}
</script>
我想也许我可以做这样的事情:
<script>
type="text/javascript"
src="//maps.googleapis.com/maps/api/js?sensor=false"
</script>
但这似乎不起作用。因为那时我本可以去:
<script>
if (XY.isChina === false) {
type="text/javascript"
src="//maps.googleapis.com/maps/api/js?sensor=false"
}
</script>
有人知道正确的方法吗?
有几种选择。您可以将脚本document.write()
到HTML中,也可以动态加载脚本。这里有一个例子:
<script>
if (XY.isChina === false) {
document.write('<scr' + 'ipt type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=false"></scr' + 'ipt>');
}
</script>
您可以在任何时候动态加载脚本,如下所示:
function loadScript(url, callback) {
var script = document.createElement("script");
if (callback) {
script.onload = callback;
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
像这样动态加载会导致脚本异步加载(页面加载和其他脚本不会等待此脚本加载),因此它将在未来某个不确定的时间完成。
你可以在你的代码中这样使用:
<script>
if (XY.isChina === false) {
loadScript("//maps.googleapis.com/maps/api/js?sensor=false");
}
</script>
使用document.write()
可以防止现代浏览器中的某些页面加载优化,因此如果可能的话,通常最好找到不同的方法,但如果您想要阻止,使用document.write()
同步加载脚本是有条件加载脚本的最简单方法。
相关文章:
- 为什么我的javascript脚本在页面加载时运行,而不是使用onclick
- 如何知道是否加载了JavaScript(脚本)
- onclick'放在JavaScript脚本中时无法工作
- 直接导航到chrome中的页面时未加载Javascript脚本
- 我将如何在将数据发布到 php 脚本的 javascript 脚本中输入变量
- Javascript 和 AngularJS2.为什么 JavaScript 脚本过早触发并假设不起作用
- jquery和JavaScript脚本不起作用
- 两个javascript脚本的非独立性
- 从另一个Javascript脚本(Canvas3D)更新QML属性
- 仅当存在某些HTML元素时才运行多个Javascript脚本
- 只有在条件满足时才加载javascript脚本-不起作用
- 在没有JQuery的情况下加载HTML主体之后调用JavaScript脚本的最佳方式
- 如何将PHP截图插入Javascript脚本
- 如何在javascript脚本标记中使用剃刀for循环
- 有没有办法同时加载JavaScript脚本
- 使用 Angularjs 加载 JavaScript 脚本的最佳方法是什么?
- 进入页面时未知的javascript脚本向下滚动
- Java 脚本中的 JavaScript 脚本中的绑定方法调用
- 克隆整个 JavaScript 脚本引擎
- 将 PHP 变量发送到 JavaScript.<脚本>标记的位置