2015-06-28 74 views
0

我試圖實現類似於www.example.com/en/test/page.html的操作,將加載www.example.com/2.html的框架集。Frameset innerHTML更改

我能做些什麼。

但現在一旦2.html加載到框架集中,我想將.html"替換爲.html" target="_top"

因此,2.html中的所有鏈接都將在父窗口中打開,而不是在框架集本身中打開。

<!DOCTYPE html"> 
<html lang='en' xml:lang='en' xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
      <meta charset="utf-8" /> 
        <title>Test Page</title> 
          <script> 
          (function divert() 
            { 
            var urlString = parent.document.URL; 
            var a1 = new RegExp("/en/test/page"); 
            if(a1.test(urlString)) {document.write('<frameset cols="100%" rows="100%"><frame src="http://www.example.com/2.html"></frameset>');} 
            else{document.write('<frameset cols="100%" rows="100%"><frame src="http://www.example.com/3.html"></frameset>');} 

            var str = document.getElementById("demo").innerHTML; 
            var res = str.replace('.html"', '.html" target="_top"'); 
            document.getElementById("demo").innerHTML = res; 
            })(); 
          </script> 
    </head> 
    <body onLoad="divert()"></body> 

+1

你爲什麼不只是寫'目標=「_頂」'上所有的HTML擺在首位的鏈接? – CBroe

+0

由於框架集URL不是固定的,我們無法修改所有將使用的頁面的代碼。 – Vinod

回答

0

@Vinod嗨,你可以使用target="_parent"如果你只有2級的框架集,或者只是想打開鏈接到只有父框架..

或者打開鏈接到當前頁面,您可以使用target="_top"

你可以閱讀更多關於它here

UPDATE:

您還可以使用JavaScript來檢測是否頁面框架內,不是增加目標務實地鏈接加載..

您可以使用window.location.originparent.window.location.origin檢測,如果你是在框架

而且比你可以用下面的代碼使用jQuery使用JavaScript

添加目標:

$(document).ready(function(){ 
    $('#link_other a').attr('target', '_blank'); 
}); 

不使用jQuery

window.onload = function(){ 
    var anchors = document.getElementById('link_other').getElementsByTagName('a'); 
    for (var i=0; i<anchors.length; i++){ 
    anchors[i].setAttribute('target', '_blank'); 
    } 
} 
+0

是的,我也可以使用target =「_ parent」。但主要的問題是自動/動態地爲框架集中加載的URL添加此功能。我相信必須有一種方法。 – Vinod

+0

請檢查我的更新回答.. –

+0

嗨Pratick,如果我在控制檯中添加下面的代碼,它的工作原理是 'var links = document.getElementById(「demo」)。contentDocument.documentElement.getElementsByTagName('a');如果我把它加回到我的html中,它沒有做任何事情。但是,如果我將它添加回我的html,它不會做任何事情。你能幫忙嗎?非常感謝你的幫助.. – Vinod

0
<!DOCTYPE html"> 
<html lang='en' xml:lang='en' xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
      <meta charset="utf-8" /> 
        <title>Test Page</title> 
          <script> 
          (function divert() 
            { 
            var urlString = parent.document.URL; 
            var a1 = new RegExp("/en/test/page"); 

           function targetUrl(){ 
           var links = document.getElementById("demo").contentDocument.documentElement.getElementsByTagName('a'); 
           for(var i =0; i<links.length; i++){ 
           links[i].target = '_parent';} 
           } 

            if(a1.test(urlString)){document.write('<frameset cols="100%" rows="100%"><frame id="demo" src="http://www.example.com/2.html"></frameset>');} 
            else{document.write('<frameset cols="100%" rows="100%"><frame id="demo" src="http://www.example.com/3.html"></frameset>');} 
            document.getElementById("demo").onload= targetUrl; 
            })(); 
          </script> 
    </head> 
    <body></body> 
</html>