这个问题已经有一个答案在这里:

如何使这项工作在歌剧?我找到这段代码,用于剧院,但它不能工作对我来说:

 function AddToFavorites(title, url) {

    if (window.sidebar) { // Mozilla Firefox Bookmark
        window.sidebar.addPanel(title, url,"");
        return false;
    } 
    else if( window.external ) { // IE Favorite
        window.external.AddFavorite( url, title); 
        return false;
    }
    else if(window.opera && window.print) { // Opera Hotlist
                var elem = document.createElement('a');
                elem.setAttribute('href',url);
                elem.setAttribute('title',title);
                elem.setAttribute('rel','sidebar');
                elem.click();
                return false;
    }
 }

蜻蜓的错误控制台是沉默,没有错误发生的.

有帮助吗?

解决方案

如果 您坚持它,那么没有动态产生的多余的链接:

 <a href="http://real.url.example.com" title="Bookmark me, pleaeease!" 
    rel="sidebar"
    onclick="return !addToFav(this.href,this.title)">

但是请不要这样做。

作为歌剧的用户,我将感激不推动这种时尚–我可以很容易地拖放签到书签酒吧/小组/speed ial如果我选择。

其他提示

歌剧院强制执行相同的用户要求的事件 允许书签,这样的代码你不会的工作,因为用户不点击的链接。

你需要的东西更像是这样:

function AddToFavorites(obj, title, url){
  if(window.sidebar){
    // Mozilla Firefox Bookmark
    window.sidebar.addPanel(title, url,"");
    return false;
  } else if(window.external){
    // IE Favorite
    window.external.AddFavorite( url, title);
    return false;
  } else if(window.opera && window.print){
    //Opera Hotlist
    obj.setAttribute('href',url);
    obj.setAttribute('title',title);
    obj.setAttribute('rel','sidebar');
    obj.click();
    return false;
  }
}

呼叫

<a href="#" onclick="AddToFavorites(this, 'your title', 'your url');">Bookmark This Page</a>

(觉得免费的,使更多的不显眼的,我只是想来表明用户的事件要求)

的方式来获得"添加到最爱的"链接的工作剧10动态添加一个 rel 属性的一个链接

$('#add_to_favs').attr('rel','sidebar');

以下代码工作在歌剧院8.54.它不工作中的9.27或9.63(仅有的两个其他版本的我已经可用于测试)。在9.27和9.63它只是导航你到雅虎:

var url = 'http://www.yahoo.com/';
var title = 'Yahoo!';
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.click();

嫌疑人 他们除能力增加一个书签/最喜欢的用户不启动它。因为你已经可以迫使浏览器以浏览到一个新的网址的使用 window.location 这可能不是认为DoS的脆弱性。

以下作品的现如果使用者点击的链接:

var url = 'http://www.yahoo.com/';
var title = 'Yahoo!';
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.appendChild(document.createTextNode('Add Bookmark'));
document.getElementsByTagName('body')[0].appendChild(elem);

此外, window.external.AddFavorite(url, title); 不再允许非使用者发起的最喜欢的外在因特网浏览器8Beta2.然而,如果包括这样的 onclick 事件的链接,它的工作:

<a href="http://www.yahoo.com/" title="Yahoo!" onclick="window.external.AddFavorite(this.href, this.title);return false;">Add to Favorites</a>

这两个火狐2.0.0.18和3.0.4目前支持非使用者发起的签外,但我不会有点惊讶地看到他们除在未来版本。

我相信,它被认为是糟糕的形式,有点粗鲁的试图强迫一个游客的网站添加一个喜欢/签没有他们,点击链接或采取明确的行动,将这样做。只要访问一个网站,是没有足够的理由试图强迫这些访问者添加一个喜欢/签。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top