Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android WebView-从一个iframe访问另一个iframe中的类_Javascript_Android_Jquery_Iframe_Webview - Fatal编程技术网

Javascript Android WebView-从一个iframe访问另一个iframe中的类

Javascript Android WebView-从一个iframe访问另一个iframe中的类,javascript,android,jquery,iframe,webview,Javascript,Android,Jquery,Iframe,Webview,我们有一个本机ios应用程序,它显示一个带有HTML网页和两个iFrame的web视图。在这些iFrame中,我们显示来自应用程序资源中HTML文件的文章。在文章中,经常有javascript脚本同时对两篇文章进行操作。例如,将文本的某些部分设置为粗体。为此,它列出了具有特定类的所有元素,并修改其CSS样式 $(".question").length() 将返回iOS上两个iframe中类为.question的元素数,其中只返回Android上当前iframe中的元素。我所说的“当前”是指用户

我们有一个本机ios应用程序,它显示一个带有HTML网页和两个iFrame的web视图。在这些iFrame中,我们显示来自应用程序资源中HTML文件的文章。在文章中,经常有javascript脚本同时对两篇文章进行操作。例如,将文本的某些部分设置为粗体。为此,它列出了具有特定类的所有元素,并修改其CSS样式

$(".question").length()
将返回iOS上两个iframe中类为
.question
的元素数,其中只返回Android上当前iframe中的元素。我所说的“当前”是指用户与之交互以启动脚本的那个

我们还需要发布一款android应用程序。 一切都很顺利,直到我测试了一篇文章,其中javascript必须在两个iFrame上运行。不幸的是,它只能从一个iframe访问元素

有没有什么方法可以让它在不改变附在文章中的Java脚本代码的情况下工作?我在那里没有权威[此外,可能有数千篇文章需要更新,其中包含大量自定义Javascript]


谢谢

这就是我处理类似案件的方式

webview.loadDataWithBaseURL("file:///android_asset/", your_html_as_string_here, "text/html", "utf-8", null);
webview.getSettings().setJavaScriptEnabled(true); // enable javascript
            webview.addJavascriptInterface(new WebViewJavaScriptInterface(getActivity()), "app");
并且必须创建一个内部类并调用javascript接口中提到的与“app.function1”相同的函数

public class WebViewJavaScriptInterface {

        private Context context;

        /*
         * Need a reference to the context in order to sent a post message l
         */
        public WebViewJavaScriptInterface(Context context) {
            this.context = context;
        }

        /*
         * This method can be called from Android. @JavascriptInterface
         * required after SDK version 17.
         */

        @JavascriptInterface
        public void function1() {
            ll_translucent.setVisibility(View.VISIBLE);
        }

        /*
                * This method can be called from Android. @JavascriptInterface
                * required after SDK version 17.
                */
        @JavascriptInterface
        public void function2() {
            new CommonActions(getActivity()).showSnackToast(verticalSeekBar, "Purchase Episode to read Further");
        }
    }

我真的不明白你的例子。您只需加载一个网页并公开两个javascript接口函数。这对从另一个iframe访问一个iframe的内容有什么帮助?你看过了吗?是的,它需要更改内容,我没有办法更改。