2011-05-11 45 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>