我有一个角度单页应用程序。我正在尝试创建一个书签,但希望书签引用不同的 JS 文件,具体取决于我是在产品还是本地开发环境中。这是大致的原始书签:
<a href="javascript:(function(){var jsCode = document.createElement('script');
jsCode.setAttribute('src', 'http://mydomain.com/scripts/bookmarklet.js');
document.body.appendChild(jsCode);})();">My Bookmarklet</a>
这工作得很好,并且会加载bookmarklet.js。但是在 Angular 中,我在控制器中设置了一个范围变量,它是 prod 域或本地主机的根,如下所示:
$scope.rootUrl = prod ? 'http://mydomain.com/' : 'localhost:3000/';
然后在我正在做的角度页面上:
<a href="javascript:(function(){var jsCode = document.createElement('script');
jsCode.setAttribute('src', '{{rootUrl}}/scripts/bookmarklet.js');
document.body.appendChild(jsCode);})();">My Bookmarklet</a>
出于某种原因,当将 angular 变量添加到小书签时,chrome 在渲染时会像这样添加一个“不安全: ”,并使小书签无用。:
<a href="unsafe:javascript:(function(){var jsCode = document.createElement('script');
jsCode.setAttribute('src', 'http://mydomain.com/scripts/bookmarklet.js');
document.body.appendChild(jsCode);})();">My Bookmarklet</a>
我四处搜索,似乎找不到解决方案或理解为什么会发生这种情况。任何帮助解决这个问题将不胜感激!