문제

오페라 에서이 작업을하는 방법? 오페라에 대한이 코드를 발견했지만 나에게는 효과가 없습니다.

 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는 현재 비 사용자가 시작된 북마크 추가를 지원하지만 향후 버전에서도 제거하는 것을보고 놀라지 않을 것입니다.

나는 그것이 나쁜 형태로 간주되고 방문자가 웹 사이트를 방문하여 링크를 클릭하지 않고 좋아하는/북마크를 추가하도록 강요하거나 그럴 것입니다. 단순히 웹 사이트를 방문하는 것만으로도 방문자가 좋아하는/북마크를 추가하도록 강요하려는 충분한 이유는 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top