2015-12-21 34 views
1

我在InAppBrowser中运行单页面Web应用程序。我想将HTML属性注入一些HTML元素。例如,将所有h1更改为h2。如何使用Cordova的InAppBrowser将页面注入页面

我知道我可以使用executeScript方法短期的任务是这样的:

win.executeScript({ code: "console.log('hello');" }) 

有谁知道什么是与executeScript方法运行长脚本的最佳方法,以及如何确保它运行后一切都装?

回答

0

如果你想注入很多代码,你应该使用一个js文件而不是只使用一个代码字符串。从.js文件注入代码,并确保在页面加载,你必须运行executescript当loadstop事件被称为,是这样的:

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank'); 
ref.addEventListener('loadstop', function() { 
    ref.executeScript({file: "http://www.yourwebsite.com/myscript.js"}); 
}); 

file必须是如果你是加载外部JS外部网站,但可以是本地js,如果您正在加载本地html文件

+0

是否使文件不能为本地? – kaleaht

+0

不,它必须是一个远程文件,它只是创建一个脚本标签并将其附加到网站主体 – jcesarmobile

+0

实际上它取决于。 如果在应用程序浏览器窗口中打开的是加载外部html文件,它必须是远程文件。但是,如果它正在运行本地文件,则还可以执行本地脚本。 –