Javascript 保存bookmarklet(favelet)前停止safari评估document.location

Javascript 保存bookmarklet(favelet)前停止safari评估document.location,javascript,safari,bookmarklet,Javascript,Safari,Bookmarklet,我创建了一个非常简单的bookmarklet,用于将当前正在查看的站点的url提交到脚本: javascript:document.location%20=%20'http://www.example.com/script?user=___&key=___&url='+document.location 我将其作为HTML页面上的链接,用户可以将其拖动到书签工具栏或任何地方。问题是,在创建书签之前,Safari似乎单独评估JS,因此提交的URL始终是我显示链接的页面的URL 如

我创建了一个非常简单的bookmarklet,用于将当前正在查看的站点的url提交到脚本:

javascript:document.location%20=%20'http://www.example.com/script?user=___&key=___&url='+document.location
我将其作为HTML页面上的链接,用户可以将其拖动到书签工具栏或任何地方。问题是,在创建书签之前,Safari似乎单独评估JS,因此提交的URL始终是我显示链接的页面的URL

如何解决这个问题,在添加书签之前阻止Safari评估document.location,而不破坏其他浏览器的功能?我宁愿避免为Safari使用单独的书签

谢谢


Mala

我相信-答案是简单地用escape()包围评估的部分:

目前无法访问mac/safari,因此我无法确定它是否有效

[...]&url='+escape(document.location)