FriendFeed Share Bookmarklet для Опери

На френдфіді є така кльова закладочка — Share Bookmarklet. За її допомогою можна розшарювати на фф з будь-якої сторінки різну інфу. Зокрема вона прикольно працює із фотками — клікаєш фотки на сторінці, які сподобалися, і вони додаються у фрейм закладки, а потім і на фф (як мініатюра) (див. приклад).

Усе б нічого, та з Оперою це не працює! (тобто так все нормально, а з картинками ну ніяк…) І це так прикро — простий яваскрипт не могли вже з усім сумісний написати… Ну я собі подивився, що за помилку пише Опера — “attempted to write protected variable”. Тоді зайшов подивитись на код, який цю помилку генерує. І з’ясувалось, що вся проблема в тому, що скрипт оперує адресами (чи що) з різними протоколами: https і http — а Опера (логічно) сприймає їх як різні об’єкти і не дозволяє обмінюватися даними між ними (щось таке коротше). А інші браузери на це плювали. В усьому оригінальному скрипті це https зустрічається один раз, в інших місцях завжди http. Одним словом, склалося у мене враження, що хтось просто помилився з цим https. Тому я написав свій користувацький яваскрипт (є в Опері така корисна штука), який просто заміняє цей https на http — і все запрацювало!

Взагалі-то я написав розробникам фф про це, але поки відповіді немає — кому треба, може корисуватися ;-) (як бачите, це диво програмістського мистецтва кожного разу, коли запускається закладка, тупо робить пошук-заміну https на http в їхньому скрипті (хто вміє, хай напише краще)).

Коротше, мораль: Опера як завжди ні в чому не винна… Вони лише чітко дотримуються стандартів (і що інші на ці стандарти забивають — то вже не їх проблема). У даному випадку, скоріше за все, має місце просто програмістський ляп; та якби проблема спливла б не в Опері — як швидко його б виправили! А так, тяганина…

  • Олег

    Цікава інформація. Дякую.

  • Олег

    Цікава інформація. Дякую.