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>';

什么是在引号内转义引号的正确方法,以便我可以将字符串作为参数发送?

4

3 回答 3

2

你必须SomeNamequotes

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

当你不带引号传递它时javascript,它认为它是变量,即undefined.

于 2012-12-04T13:17:29.393 回答
1

SomeName以上被用作变量而不是字符串。您缺少引号。

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

如果没有引号,它会寻找一个名为的变量,该变量SomeName将包含您要填充的位置的名称。明白我的意思了吗?

于 2012-12-04T13:17:55.883 回答
1

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

javascript:detailplace('SomeName');
于 2012-12-04T13:18:03.257 回答