2016-01-23 49 views
2

如何將iframe中的所有鏈接設置爲在系統Web瀏覽器中打開而不是在WebView中打開?我正在使用inappbrowser插件。Ionic Android inappbrowser插件 - 將iframe中的所有鏈接設置爲在系統瀏覽器中打開

<ion-view style="" title="iframe"> 
<ion-content class="has-header" overflow-scroll="true" padding="true"> 
    <div style="" class="list card"> 
     <div class="item item-divider-android">iframe content</div> 
     <div class="item item-body-android"> 
      <div style=""> 
       <center> 
<iframe src='{{trustSrc(iframe.src)}}' frameborder="0" width="100%" height="500" scrolling="yes"></iframe></center> 
       </div> 
      </div> 
     </div> 
    </ion-content> 

回答

1

我發現在gist(我沒寫)這個解決方案。 基本上它聲明的angularfilter是HREF鏈接轉換成window.open打開你的HTML模板使用inappbrowser插件

var myApp = angular.module('myApp', ['ngSanitize']); 

myApp.filter('hrefToJS', function ($sce, $sanitize) { 
    return function (text) { 
     var regex = /href="([\S]+)"/g; 
     var newString = $sanitize(text).replace(regex, "onClick=\"window.open('$1', '_blank', 'location=yes')\""); 
     return $sce.trustAsHtml(newString); 
    } 
}); 

myApp.controller('MyCtrl', function ($scope) { 
    $scope.html = "This a link: <a href='https://www.google.com'>Google</a> :)"; 
    $scope.plaintext = "This is a link: https://www.google.com :) " 
}); 

用法鏈接:

<div ng-app="myApp"> 
    <div ng-controller="MyCtrl"> 
     <h1>Before</h1> 
     <p ng-bind-html="html"></p> 
     <p ng-bind-html="plaintext"></p> 
     <h1>After</h1> 
     <p ng-bind-html="html | hrefToJS"></p> 
     <p ng-bind-html="plaintext | linky | hrefToJS"></p> 
    </div> 
</div> 
+0

我可以應用此的iframe?我可以看到它如何與常規鏈接一起工作,但不知道如何將其應用於iframe中的鏈接。 – student

相關問題