Javascript 如何处理bookmarklet中的引号

Javascript 如何处理bookmarklet中的引号,javascript,bookmarklet,Javascript,Bookmarklet,这是我为编写jquerybookmarklet找到的一个脚本,我在其中添加了三行代码。问题是jQuery代码有很多引号(用于选择器),我必须将bookmarklet放在a href=“javascript:code”中,href的双引号会把一切都搞糟。 下面是我的代码的样子,我试图以多种方式避开双引号,但都没有成功。有办法解决这个问题吗? <a href="javascript:(function(){ // the minimum version of jQuery we want v

这是我为编写jquerybookmarklet找到的一个脚本,我在其中添加了三行代码。问题是jQuery代码有很多引号(用于选择器),我必须将bookmarklet放在a href=“javascript:code”中,href的双引号会把一切都搞糟。 下面是我的代码的样子,我试图以多种方式避开双引号,但都没有成功。有办法解决这个问题吗?

<a href="javascript:(function(){

// the minimum version of jQuery we want
var v = '1.3.2';

// check prior inclusion and version
if (window.jQuery === undefined || window.jQuery.fn.jquery < v) {
    var done = false;
    var script = document.createElement('script');
    script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/' + v + '/jquery.min.js';
    script.onload = script.onreadystatechange = function(){
        if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
            done = true;
            initMyBookmarklet();
        }
    };
    document.getElementsByTagName('head')[0].appendChild(script);
} else {
    initMyBookmarklet();
}

function initMyBookmarklet() {
    (window.myBookmarklet = function() {
        // your JavaScript code goes here!
        var loc=window.location;
        $('body').append('<form id=\'IDform\' action=\'http:/pourid.3eeweb.com/read.php\' method=\'post\' ><input name=\'url\' type=\'text\' value=\''+loc+'\' /></form>');
        $('#IDform').submit();
    })();
}

 })();">bookmarklet</a>

当我点击bookmarklet链接时,firebug在函数体后面说:SyntaxError:missing}

但是如果我只运行javascript(不使用html链接),它运行得很好。

有两种方法可以做到这一点,一种是html转义引号<代码>“或
&34;
用于
&39用于


我更喜欢的另一种方法是,在JavaScript中以字符串形式输入bookmarklet,并将其附加到所指出的
,您可能需要删除
/
注释。这是因为URI不应该有任何换行符,因此当放在一行上时,注释永远不会结束。

只需删除代码中的注释,就可以了;)

属性中不能有
/
注释或换行符。它必须是一根长字符串

如果您想要注释,则需要使用block comments
/*foo*/

它需要看起来像

<a href="javascript:document.body.style.color='red';alert('no line breaks');void(0);">foo</a>


最简单的解决方案是将代码放入一个外部js文件中,并让bookmarklet将文件添加到页面中。html代码中是否有换行符,或者它只是为了美观起见才放在这里?在当前脚本中,bookmarklet中的引号没有问题,因为您没有使用双引号(用于定义HTML属性)。但是,问题是您的注释和换行符。添加好的建议,但这并不能回答任何有关引号问题的问题,这正是问题所要问的(标题清楚地指出)。哈哈-是的,确实-这就像是生命中的前几年:)