0

提前致谢。我想知道,如何从 webview 中加载的页面访问 iFrame 并在该 iframe 表单中设置一些值。

我尝试使用 parent.getElementById(?) 但它对我没有帮助......

    myWebView.loadUrl("https://nesach.justice.gov.il/mashkonot/forms/fMashIyunMishkunContent.aspx");
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            int user=5466687,user2=1122;
            view.loadUrl("javascript:var f = window.frames['frmAddBakasha'];alert('Hello');");
            view.loadUrl("javascript:alert('Frame element loaded');");

            view.loadUrl("javascript:document.getElementById('MisparBakashot').value = '"+user+"';");
            view.loadUrl("javascript:var iframe = document.getElementsByTagName('frmAddBakasha');");
            view.loadUrl("javascript:var doc = iframe.contentWindow.document;");                
            view.loadUrl("javascript:doc.body.style.backgroundColor = 'green';");                                         

        }
    });
4

1 回答 1

1

由于安全限制,除非siframe属于同一个域,否则您将无法访问iframes 子元素。

例如,参见elementFromPoint

如果指定点的元素属于另一个文档(例如,iframe 的子文档),则返回调用该方法的文档的 DOM 中的元素(在 iframe 情况下,iframe 本身)。

我相信,同样适用于getElementById.

于 2013-08-26T11:25:55.667 回答