在href JavaScript中传递Vars的正确语法

时间:2012-03-30 21:49:57

标签: javascript html syntax

基本问题让我感到愚蠢,但是......,href中的正确语法是什么?

href:

<html>
<a href="javascript:navClickListener("navContent", "bodyContent" "http://somelink.com");"></a>
</html>

功能:

function navClickListener(appendE, target, gotoURL) {
    //doing stuff
};

3 个答案:

答案 0 :(得分:2)

当您真的必须使用内联JavaScript时,请使用不同的引号,例如'&quot;
目前,HTML属性由双引号和JavaScript代码标记。

<a href="javascript:navClickListener("navContent", "bodyContent" "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content");"></a>
Is effectively truncated to:
<a href="javascript:navClickListener("></a>
                                     ^ Because of this.

在这种情况下,由于您使用的是JavaScript- URI ,因此您也可以使用%22代替双引号。

演示:http://jsfiddle.net/pu3CM/

答案 1 :(得分:1)

在“href”属性中避免使用JavaScript会更好。

<a href='#' onclick='navClickListener("navContent", "bodyContent", "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content"); return false;'>Click Me</a>

答案 2 :(得分:1)

使用javascript:void(0);作为HREF值可防止用户单击锚点时发生跳跃或其他意外行为。使用单引号,因为JavaScript中有双引号。

<a href="javascript:void(0);" onclick='javascript:navClickListener("navContent", "bodyContent" "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content");'></a>

或者,您可以通过绑定单击处理程序来完成JavaScript中的所有操作。这将允许您设置正常的HREF值,这对屏幕阅读器更好,并且仍然允许相同的功能。

<a href="http://192.168.1.34/wiki/index.php/Airworthiness_Directive#content" class="someclass"></a>

$(document).ready( function() {
    $('.someclass').click( function(event) {
        event.preventDefault();//Does the same thing as javascript:void(0); in the HREF value
        var pageURL = $(this).attr('href');
        navClickListener("navContent", "bodyContent", pageURL );
    } );
} );