我正在使用<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>
标签滚动位置?
答案 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未对此代码进行测试,但可能存在语法错误。