Sof*_*mur 5 javascript lazy-loading angularjs html5-history angular-ui-router
我有一个网站mean-stack.
通常,我的所有外部参考都列在 index.html
我意识到我正在使用的一个外部JS库(例如,https: //cdnjs.cloudflare.com/troublelibrary.js)与我的网站的一部分有一些混淆.所以我正在寻找的解决方法是不为特定路径加载它https://www.myexample.com/specific.
有谁知道如何在路由中实现这一目标?
编辑1 :(见这里的完整问题)
实际上,有昏迷的图书馆是history.js.我一直加载它的初始代码如下.因此https://localhost:3000/home总是在浏览器中https://localhost:3000/home(即,#因为不会添加history.js)
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
<script src="https://cdn.rawgit.com/devote/HTML5-History-API/master/history.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试以下代码,Ben建议:
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
<script>
var newScript = document.createElement('script');
newScript.src = 'https://cdn.rawgit.com/devote/HTML5-History-API/master/history.js';
document.head.appendChild(newScript);
console.log(window.location.href)
</script>
Run Code Online (Sandbox Code Playgroud)
我意识到第一次加载https://localhost:3000/home不会改变.但是,如果我刷新浏览器,它可以更改为https://localhost:3000/#/home.
所以附加脚本与直接引用不完全相同,有人知道为什么吗?
这是一种方法:
if(window.location.href !== 'https://url.com/path/to/trouble/page'){
var newScript = document.createElement('script');
newScript.src = 'https://url.com/path/to/script';
document.head.appendChild(newScript);
}
Run Code Online (Sandbox Code Playgroud)
将其添加到<head>文档的 。它不会在您在if语句中指定的页面上加载故障脚本。确保不要在页面上的其他任何地方加载故障脚本。
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |