2011-05-11 46 views
1

我有問題,我嘗試點擊鏈接,然後它無法打開鏈接使用目標:iFrame的名稱。我不想使用href,因爲即將使顯示/隱藏div。通過iFrame去鏈接

的Javascript:

<script type="text/javascript"> 
<!--// 
function godirect(url, targetname) 
{ 
document.getElementById(targetname).src = url; 
//frame[targetname].location.href = url; 
} 
//--> 
</script> 
在HTML和PHP

:在JavaScript

$a=0; 

echo '<a href="#" onclick="godirect("http://www.google.com", iframe_url'.$a.');">Click Me!</a>'; 

echo '<iframe class="iframe_url" id="iframe_url'.$a.'"></iframe>'; 

回答

0

你必須報價字符串。您正試圖通過傳入您尚未定義的變量來獲取元素的ID。

您也正在使用相同的引號字符來分隔您的HTML屬性值,因爲您用它來分隔JS字符串。

要使用您所使用的方法,同時使修復的最低數量,使其工作:

echo '<a href="#" onclick="godirect(&quot;http://www.google.com&quot;, &quot;iframe_url'.$a.'&quot;);">Click Me!</a>'; 

使用JS這是擺在首位一個非常愚蠢的想法,雖然,你的執行失敗當JS不可用時(這很奇怪,因爲您正在採取措施阻止瀏覽器無法識別來自rendering the JS as content text的腳本元素)。

你可以用普通的HTML做到這一點:

<a href="http://www.google.com" 
    target="iframe_url<?php echo htmlspecialchars($a); ?>"> 
    Click Me! 
</a> 

我不想使用的href因爲我去讓顯示/隱藏DIV。

你可以做到這一點,以及有一個正常的,功能的鏈接。 Build on things that work

+0

感謝,大衛·約 「"」 我不知道它需要的是。我想我可以像這樣'''' – user453089 2011-05-11 16:43:07

-2

試試這個:

echo '<a href=\"#\" onclick=\"godirect(\"http:\/\/www.google.com\", iframe_url'.$a.');\">Click Me!</a>'; 
echo '<iframe class=\"iframe_url\" id=\"iframe_url'.$a.'\"></iframe>'; 
+0

有很多完全不必要的雙引號字符轉義(因爲字符串是用''字符分隔的,它們是唯一需要爲PHP轉義的引號)它使事情變得非常難以閱讀......並且它無法解決問題。 – Quentin 2011-05-11 16:11:44

1

如何

<script type="text/javascript"> 
function godirect(url, targetname) { 
    window.frames[targetname].location = url; 
    //OR 
    //window.open(url,targetname); 
    return false; 
} 
</script> 

<?PHP 
$a=0; 
?> 
<a href="#" onclick="return godirect('http://www.google.com', 'iframe_url<? echo $a; ?>');">Click Me!</a> 
<iframe class="iframe_url" name="iframe_url<? echo $a; ?>" id="iframe_url<? echo $a; ?>"></iframe>