2012-12-04 131 views
1

我非常沮丧的代码中的几个函数。当用户点击一个链接时,我有几个函数会触发。
该参数被正确发送到两个功能,但当用户单击detailplace的链接时,出现参考错误,SomeName未定义。功能细节似乎没有问题。为什么detail正常,但detailplace不?函数参数未定义

HTML

<a href="javascript:detail(123456);">Details</a> 
<a href="javascript:detailplace(SomeName);">Details</a> 

的Javascript

function detail(property) { 
    var summaryhtml = '<iframe src="' + URL + property + '" width="340px" height="400px" frameborder="0" class="sum_frame"></iframe>'; 
    document.getElementById('itab1').innerHTML = summaryhtml; 
} 

function detailplace(place) { 
    var summaryhtml = '<iframe src="' + URL + place + '" width="340px" height="400px" frameborder="0" class="sum_frame"></iframe>'; 
    document.getElementById('itab1').innerHTML = summaryhtml; 
} 

我把你的意见和编辑的代码包括引号。问题是我正在构建JavaScript中的链接。 SomeName在别处被定义为一个字符串。

link = '<a href="javascript:detailplace(&quot;'; 
link += SomeName; 
link += '&quot;)";>Site Details</a>'; 

什么是正确的方式来避免引号内的引号引号内所以我可以发送字符串作为参数?

+0

@artemvyshniakov你让我走在正确的方向。然后我发现引号不需要javascript转义,但是html转义了。我更新了上面的代码来工作。 – normalhabit

回答

2

您必须包装SomeNamequotes

<a href="javascript:detailplace('SomeName');">Details</a> 

当你通过它不含引号javascript认为它是变量,是undefined

1

SomeName以上被用作一个可变不是作为。你缺少引号。

<a href="javascript:detailplace('SomeName');">Details</a> 

没有引号,它在寻找一个叫SomeName变量,将持有你要填写的地方的名字。明白我的意思了吗?

1

如果SomeName不是先前定义的变量,但它是要传递给方法的实际文本文本,则需要将其放在引号中。

javascript:detailplace('SomeName');