Javascript 如何处理bookmarklet中的引号
这是我为编写jquerybookmarklet找到的一个脚本,我在其中添加了三行代码。问题是jQuery代码有很多引号(用于选择器),我必须将bookmarklet放在a href=“javascript:code”中,href的双引号会把一切都搞糟。 下面是我的代码的样子,我试图以多种方式避开双引号,但都没有成功。有办法解决这个问题吗?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
<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属性)。但是,问题是您的注释和换行符。添加好的建议,但这并不能回答任何有关引号问题的问题,这正是问题所要问的(标题清楚地指出)。哈哈-是的,确实-这就像是生命中的前几年:)