如何从JavaScript滚动<webview>标签的内容?</webview>

时间:2014-12-30 10:39:35

标签: javascript webview electron

我正在使用<webview>标记来嵌入页面。 <webview>代码包含shadow-root,其中包含一个代码<object id="browser-plugin-1 ...>。所以我尝试为此标记设置scrollTop值。

var webView = document.getElementById('webview tag id');
var elm = webView.shadowRoot.firstChild; // elm is object tag
console.log(elm.scrollTop);  // 0
elm.scrollTop = 100;
console.log(elm.scrollTop);  // 0

但没有任何事情发生...... 是否可以从外部控制<webview>标签滚动位置?

2 个答案:

答案 0 :(得分:4)

是的,请改为:

var webView = document.getElementById('webview tag id');
webView.executeJavaScript("document.querySelector('body:first-child').scrollTop=100");

答案 1 :(得分:0)

可以通过WebView.executeJavaScript(code)函数执行任何类型的javascript,它将评估WebView中的代码。

要访问您的元素,您首先必须等待加载WebView,然后执行javascript。

var webView = document.getElementById('webView');
webView.addEventListener('did-finish-load', scrollElement );

function scrollElement(){
    var code = "var elm = document.querySelector('body:first-child'); elm.scrollTop = 100;";
    webView.executeJavaScript(code);
}

注意:Haven未对此代码进行测试,但可能存在语法错误。

Source (AtomShell's WebView tag documentation)