在我的angular应用程序中,通过点击一个按钮,我想调用一个在我的angular应用程序之外的javascript函数。
此外,我认为我不能真正将javascript导入我的angular应用程序中。
实际上,我正在尝试扩展一个平台,它的页面上有一个main.ec78f7c1aff5e487c247.bundle.js
脚本,其中包含一个我想在我的angular应用程序中使用的方法doSomething()
,该方法是在相同的位置导入的。(但是我不想要,如果这个main被更新来随时更新我的导入路径,因为ec78f7c1aff5e487c247
会在那时改变,或者?)
当我在浏览器控制台中键入window.location = 'javascript:doSomething("stringParamItNeeds")'
时,就会调用所需的确切方法。但我不知道如何在我的angular应用程序中做到这一点。有人能帮上忙吗?
发布于 2019-07-30 09:59:12
你需要确保你想调用的函数对你的程序(你的Angular应用程序)是可用的。其中一种方法是在全局范围内注册函数,即窗口对象,然后您就可以在您的程序(Angular应用程序)中访问它。
例如,"function demo () { }
“是您希望在Angular应用程序中调用的应用程序,该应用程序可在脚本文件main.hash1.js中找到
步骤1:在窗口对象window.demo = function() { ... };
上注册函数演示
第二步:在你的angular应用中,你可以简单地调用window.demo()
或者demo()
函数。
步骤3:如果你正在使用静态类型检查工具,比如Lint/Sonar等,它可能会在你的应用程序中显示错误,说明窗口上没有演示对象。你需要在你的angular应用程序代码中声明或模拟窗口对象的demo属性来解决这个问题。
https://stackoverflow.com/questions/57268667
复制相似问题