Opera의 JavaScript와 함께 "즐겨 찾기 추가[복제
-
22-08-2019 - |
문제
이 질문은 이미 여기에 답이 있습니다.
오페라 에서이 작업을하는 방법? 오페라에 대한이 코드를 발견했지만 나에게는 효과가 없습니다.
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)">
하지만 제발, 그냥하지 마세요.
Opera 사용자로서 나는 그 유행을 푸시하지 않는 것에 대해 감사 할 것입니다 - 나는 선택한 경우 바/패널/속도를 북마크로 쉽게 드래그 할 수 있습니다.
다른 팁
Opera는 동일한 사용자 이벤트 요구 사항을 시행합니다 북마크를 허용하려면 사용자가 방금 생성 한 링크를 클릭하지 않았기 때문에 작동하지 않습니다.
당신은 다음과 같은 것이 필요합니다.
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>
(더 눈에 띄지 않게 자유롭게 만들 수 있습니다. 단지 사용자 이벤트 요구 사항을 표시하고 싶었습니다).
Opera 10의 "즐겨 찾기에 추가"링크 작업을 얻는 방법은 동적으로 추가하는 것입니다. rel 링크에 귀속됩니다
$('#add_to_favs').attr('rel','sidebar');
다음 코드는 Opera 8.54에서 작동합니다. 9.27 또는 9.63 (테스트 할 수있는 유일한 두 버전)에서는 작동하지 않습니다. 9.27과 9.63에서 그것은 단순히 당신을 Yahoo로 탐색합니다! :
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();
나 의심하다 사용자가 시작하지 않고 북마크/즐겨 찾기를 추가 할 수있는 기능을 제거했습니다. 이미 브라우저를 사용하여 새로운 URL로 이동하도록 강요 할 수 있으므로 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);
더 이상 Internet Explorer 8 Beta에서 비 사용자가 시작된 선호도 추가를 허용하지 않습니다. 그러나이를 포함시키는 경우 onclick
링크 이벤트, 정상적으로 작동합니다.
<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는 현재 비 사용자가 시작된 북마크 추가를 지원하지만 향후 버전에서도 제거하는 것을보고 놀라지 않을 것입니다.
나는 그것이 나쁜 형태로 간주되고 방문자가 웹 사이트를 방문하여 링크를 클릭하지 않고 좋아하는/북마크를 추가하도록 강요하거나 그럴 것입니다. 단순히 웹 사이트를 방문하는 것만으로도 방문자가 좋아하는/북마크를 추가하도록 강요하려는 충분한 이유는 아닙니다.