发现了许多这不起作用的方法后,最终像爱迪生一样,我找到了
这个页面,该页面明确说明在Chrome中禁用了通过JS添加书签。不幸的是,它并没有解释为什么。
更新:另一个SO用户要求我扩展此答案...
我的链接和按钮都与
class="addbookmark"
关联。当用户代理为Chrome时,我使用一些jQuery来禁用链接并解释原因:
<script type="text/javascript" src="/scripts/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/scripts/bookmark.js"></script>
<script>
title='A Label for this Bookmark, ie title of this page';
$jQuery(document).ready(function(){
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
$('.addbookmark').attr({
title: 'This function is not available in Google Chrome. Click the star symbol at the end of the address-bar or hit Ctrl-D to create a bookmark.',
href: 'javascript:return false'
})
.css({opacity: .25});
}
});
</script>
并且在页面的其他位置:
<td rowspan="2" class="noprint" style="width:24px;">
<a class="addbookmark" title="Save a Bookmark for this page"
href="javascript:addToFavorites(location.href,title)">
<img style="width:24px; height:24px; padding-top:2px;" src="/images/bookmark.gif"></a>
</td>
虽然不完美,但似乎选择相对有限。
jQuery的版本并不重要,您可以选择本地副本或热链接到google版本。 bookmark.js
基本上与OP的代码完全一致:
$ cat /scripts/bookmark.js
function addToFavorites(url, name) {
if (window.sidebar) {
window.sidebar.addPanel(name, url, "");
} else if (window.external) {
window.external.AddFavorite(url, name);
} else if (window.opera && window.print) {
window.external.AddFavorite(url, name);
} else {
alert("Sorry! Your browser doesn't appear to support this function.");
}
}
希望这对你有所帮助。