2013-07-13 66 views
2

已經嘗試了一天以上,所以我現在要去我的最後一個手段,在這裏張貼。我有一個網站用下面的代碼在iFrame上打開鏈接 - PHP或JQuery

的style.css

#nav li a.active { 
    background: url('images/top-pages-button.png') 0 -80px; 
} 

#nav li ul li a:hover, #nav li ul li a.active { 
    color: #6dff6d; 
    font-weight: bold; 
    text-decoration: none; 
    background: url('images/pages-button.png') 0 -40px; 
} 

index.php頁面

<ul id="nav"> 
<li><a href="#" title="Top Pages" class="active">Top Pages</a> 
<ul> 
    <li><a href="test.php" target="myframe" title="Page 1" class="active">Page 1</a></li> 
    <li><a href="test2.php" target="myframe" title="Page 2">Page 2</a></li> 
</ul> 
</li> 
</ul> 

<iframe name="myframe" style="width: 100%; height: 100%; border: none; overflow: hidden;" src="default-page.php"></iframe> 

test.php的頁面

Simple PHP file calling a page with some content/info/text. 

上面的代碼工作,有一個默認頁面,當網站被加載時打開,當你點擊一個鏈接時,它會正確打開iFrame上的頁面。不過,我有以下需求。

  • 我想複製+粘貼鏈接,和朋友一起開上了iframe中 直接頁共享。因此,例如我想 通過電子郵件發送鏈接到 http://www.mydomain.com/index.php?page=page1.php或類似 ,而不是告訴他們訪問mydomain.com,然後點擊頂部頁面下的 Page 1。

  • 此外,該網站有多個類別,除了剛剛「排名靠前的網頁」,所以我 想爲上突出顯示用戶所在,類別和 鏈接打開。因此,如果我按第1頁,對於該類別和該 鏈接將處於「活動」狀態,然後當我轉到頁面1鏈接到 時返回到默認設置,並且Page 2爲活動狀態等等在我的 樣式表上。

整個網站有三個部分。左側導航,中間內容和右側聊天。我需要聊天是靜態的,這就是爲什麼我要這樣做。我希望能夠向朋友或朋友發送直接打開該頁面的鏈接,而不是網站,並指示點擊X,同時將類別和鏈接標記爲「活動」並根據需要更改,並保持聊天div整個時間都是靜態的。

讓我知道如果這是可能的任何PHP的JQUERY請。非常感謝你!

+0

是同一個域上的iframe還是它不同的域?我不認爲你可以控制一個iframes內容,如果它位於不同的域,因爲相同的原產地策略。如果它的同一個域名可能可以通過js訪問它。 – user1721135

+0

是的,這一切都將在同一個域名。試圖加載位於同一個域內的iframe上的某些鏈接。 –

回答

1

index.php,只需添加一些檢查$_GET['page'] - 如果這就是你想要的內容:

<li><a href="page1.php" target="myframe" title="Page 1" class="<?= ($_GET['page'] == 'page1.php') ? 'active' : ''; ?>">Page 1</a></li> 
<li><a href="page2.php" target="myframe" title="Page 2" class="<?= ($_GET['page'] == 'page2.php') ? 'active' : ''; ?>">Page 2</a></li> 

同樣,對於iframe

<iframe name="myframe" style="width: 100%; height: 100%; border: none; overflow: hidden;" src="<?= $_GET['page']; ?>"></iframe> 

記住一個白名單的網頁允許(否則iframe將加載任何東西):

if (isset($_GET['page'])) { 
    if (in_array($_GET['page'], array('page1.php', 'page2.php')) === false) { // not whitelisted 
     $_GET['page'] = 'default-page.php'; // revert to default 
    } 
} 

else { 
     $_GET['page'] = 'default-page.php'; // it isn't set 
} 

上面應該在頁面頂部(或在$_GET['page']首次出現之前)。