如何在Ionic中使用InAppBrowser打开不同的域iFrame链接?

时间:2016-07-14 05:14:47

标签: android cordova iframe ionic-framework

所以我正在使用离子创建一个应用程序,而我遇到的问题是当我在disqus中加载iframe时。 iframe中有链接,如登录和其他帖子的链接等,但它们不会在android中打开。我已经制作了一个脚本,用InAppBrowser打开应用程序中的所有链接,它可以处理除iframe之外的所有内容。

现在我理解,因为iframe来自另一个域我无法修改它或捕获链接等,所以我的问题是你知道我可以使用InAppBrowser在iframe中打开链接吗?

编辑,澄清我不希望iframe内部的链接在其中打开,但我希望InAppBrowser在新窗口中打开它们。

2 个答案:

答案 0 :(得分:0)

我认为安装了Cordova InAppBrowser插件。

请尝试以下代码:

ViewPager

在控制器文件中:

<your_package.CirclePageIndicator
            android:id="@+id/indicator"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:fillColor="@color/primary_color"
            app:pageColor="@color/white"
            app:strokeColor="@color/primary_color"
            android:padding="4dp" />

您可能还会看到此tutorial for more information

答案 1 :(得分:0)

我发现实现此目的的唯一方法是从父窗口实现一个函数到加载的iframe中,当你点击某个东西或其他任何东西打开那个链接时,在iframe中使用这个函数。例如,您可以声明一个函数(假设您使用的是inappbrowser插件),如:

function openLink(url, target, options) {
    window.open(url, target, options);
}

然后,将该功能放入您的iframe(frame是您的iframe):

frame.onload = function() {
    this.contentWindow.launchIAB = openLink;
}

最后,在iframe代码中随时使用它:

document.querySelector('a.openLink').on('click', function() {launchIAB(this.href);});