2016-02-03 139 views
0

所以我嘗試了很多方法來自動重定向我加載到我的頁面上的iframe的東西,他們似乎總是觸發父窗口重新加載/重定向,而不是將iframe指向其所需的位置。window.location防止iframe重定向父窗口

我知道大多數人都想要相反的地方,當他們在iframe中完成時,他們想要重新加載父窗口或將其導向別處。但在這種情況下,我希望我的腳本繼續到另一頁。

是否有內置機制,不允許iframe在其內部重定向?

讓爲它的緣故假裝代碼

if(someAction === true) { 
    window.location = '/some/new/path/index_new.html?param=something'; 
} 

我也有window.top.locationwindow.parent.location嘗試這樣做,我認爲一對夫婦的其他隨機變量。包括在每個變體的末尾添加.href。如果失敗,似乎iframe的父窗口總是重定向而不是實際的iframe本身,如所希望的。

的iframe是一個簡單的iframe

<iframe src="/original/path/index.html"></iframe>

的腳本,將尋求重定向的iframe嵌入/original/path/index.html

+0

另一件事值得一提的是,我可以在物理點擊我的'/原廠/路/ index.html'的嵌入式源鏈接和鏈接在iframe引導罰款。它只是當我試圖讓它自動重定向是我似乎遇到的問題或另一個問題。不料 – chris

回答

0

是的,有。請張貼您的代碼或代碼片段,以便我們看到您的工作內容。我爲一個網站使用了一個Iframe,這個網站在同一個框架內打開了父頁面的三個不同頁面,並使用Cookie來回轉換數據。但是,請顯示一些html div和或js,以便我們看到您希望如何工作。這是我工作的一些代碼。我使用本地存儲

function Redirect($page) { 
     localStorage.setItem('page',$page); 
      window.location="validateorder.htm"; 

      } 

    function orderValidate($page) { 
     localStorage.setItem('page',$page); 
     $arr = $('iframe').contents().find('form').serializeArray(); 

     $.each($arr,function(i,v){ 
      createCookie(i,v); 
     }); 


     window.location="ordersummary.htm"; 
    } 

$(document).ready(function(){ 
    $('iframe').load(function() { 
     $page = localStorage.getItem('page'); 
     $subtotal = localStorage.getItem('subtotal'); 
     $tax = localStorage.getItem('tax'); 
     $total = localStorage.getItem('total'); 
     $table = $('iframe').contents().find('td#optionsPrice'); 

     $form = $('iframe').contents().find('#frmContact'); 
     $theform = $('iframe').contents().find('#theform'); 

     if($table.length > 0){ 
      $('iframe').contents().find('td#optionsPrice').text($subtotal); 
      $('iframe').contents().find('td#tax').text($tax); 
      $('iframe').contents().find('td#totalPrice').text($total); 
     } 

     if($form.length > 0){ 
      $form.find('input').each(function(){ 
       $name = $(this).attr('name'); 
       $type = $(this).attr('type'); 
       if($type != 'button'){ 
        $(this).val(readCookie($name)); 
       } 
      }); 
     }