"إضافة إلى المفضلة" مع جافا سكريبت في الأوبرا [مكررة]

StackOverflow https://stackoverflow.com/questions/374487

  •  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)">

ولكن أرجوك لا تفعل ذلك.

كما الأوبرا المستخدم سوف يكون ممتنا على عدم دفع هذا بدعة – أستطيع بسهولة drag'n'drop التبويب إلى شريط الإشارات المرجعية/لوحة/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 (فقط اثنين من الإصدارات الأخرى المتاحة لدي اختبار).في 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();

أنا المشتبه به أنهم إزالة القدرة على إضافة الإشارات المرجعية/المفضلة دون للمستخدم الشروع في ذلك.حيث يمكنك بالفعل قوة المتصفح للانتقال إلى عنوان URL جديد باستخدام window.location التي ربما لا يعتبر دوس الضعف.

التالي يعمل بشكل جيد إذا كان المستخدم بالنقر فوق الارتباط:

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 الإصدار بيتا 2.ومع ذلك, إذا قمت بتضمين ذلك كما 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