Opera の JavaScript を使用した「お気に入りに追加」 [複製]
-
22-08-2019 - |
質問
この質問にはすでに答えがあります:
Opera でこれを機能させるにはどうすればよいでしょうか?Opera 用の次のコードを見つけましたが、私には機能しません。
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;
}
}
Dragonfly エラー コンソールは沈黙しており、エラーは発生していません。
解決
のあなたは、動的に生成された冗長リンクせずにそれを行う、その後、それを主張する場合:
<a href="http://real.url.example.com" title="Bookmark me, pleaeease!"
rel="sidebar"
onclick="return !addToFav(this.href,this.title)">
しかし、ちょうどそれをしないでください。
オペラユーザーとして、私はその流行を押していないために感謝するでしょう - 。私は私がブックマークバー/パネル/ speedialに簡単にドラッグ&ドロップ]タブを選択することができるかどうか。
他のヒント
の のオペラは、このようにあなたが持っているコードは動作しません、ブックマークを可能にするために同じユーザー・イベントの要件ののを強制しますます。
あなたがこのようなより多くのものが必要:
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(私はテストのために利用可能な2つのだけ他のバージョン)では動作しません。 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();
私は、彼らはそれを開始するユーザーせずにブックマーク/お気に入りを追加する機能を削除したことをの容疑者を。あなたはおそらくすでにDoSの脆弱性とはみなされませんwindow.location
を使用して、新しいURLに移動し、ブラウザを強制することができますので。
以下では正常に動作します:
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);
イベントとしてそれを含める場合は、また、onclick
は、もはや非ユーザーがInternet Explorer 8ベータ2にお気に入り追加を開始することができますしかし、それが正常に動作しません。
<a href="http://www.yahoo.com/" title="Yahoo!" onclick="window.external.AddFavorite(this.href, this.title);return false;">Add to Favorites</a>
のFirefox 2.0.0.18と3.0.4の両方が現在の非ユーザーをサポートするブックマークの追加を開始したが、私は彼らが同様に将来のバージョンでそれを削除見て少しも驚かないだろう。
私は彼らがリンクをクリックするか、それを行うだろう明示的なアクションを取ることなくお気に入り/ブックマークを追加するために、ウェブサイトへの訪問者を強制しようとする悪いフォームとビット失礼と考えられていると信じています。単にウェブサイトを訪問すると、それにお気に入り/ブックマークを追加するために、これらの訪問者を強制しようとするのに十分な理由ではありません。