如何加载一个js文件并在CEF上执行它
how to load a js file and execute it on CEF
我使用 CEF(chromium 嵌入式框架)加载 html 页面:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script src="phantom-limb.js" type="text/javascript"></script>
</body>
</html>
它工作正常。现在,我修改页面如下:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
cef加载后,我用cef的ExecuteJavaScript方法执行了同样的phantom-limb.js,但是没有出现。
如何加载js文件并执行,或者,js文件有一些限制?
谢谢:)
正如您在 JS 文件的 source code 末尾看到的,startOnLoad
配置参数默认设置为 true
。
以这种方式添加了 DOMContentLoaded
的侦听器,因为您的页面已经加载,所以永远不会调用它。
因此,您只需将行 start();
附加到您的源代码,然后调用您的 ExecuteJavaScript
,即使在页面加载后它也能正常工作。
我使用 CEF(chromium 嵌入式框架)加载 html 页面:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script src="phantom-limb.js" type="text/javascript"></script>
</body>
</html>
它工作正常。现在,我修改页面如下:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
cef加载后,我用cef的ExecuteJavaScript方法执行了同样的phantom-limb.js,但是没有出现。
如何加载js文件并执行,或者,js文件有一些限制?
谢谢:)
正如您在 JS 文件的 source code 末尾看到的,startOnLoad
配置参数默认设置为 true
。
以这种方式添加了 DOMContentLoaded
的侦听器,因为您的页面已经加载,所以永远不会调用它。
因此,您只需将行 start();
附加到您的源代码,然后调用您的 ExecuteJavaScript
,即使在页面加载后它也能正常工作。