不为特定路径加载JS文件

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.

所以附加脚本与直接引用不完全相同,有人知道为什么吗?

Ben*_*eau 2

这是一种方法:

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语句中指定的页面上加载故障​​脚本。确保不要在页面上的其他任何地方加载故障脚本。