Расширение для браузера Opera — перезагрузка через функцию

Я разрабатываю расширение для браузера Opera и ищу функцию, которая может перезагрузить расширение Opera или альтернативный способ решения моей проблемы. Я хочу, чтобы пользователь мог переключаться между старой версией расширения (вид списка или «новое меню») и новой версией (обычный вид или «старое меню»).

Код для этого выглядит следующим образом:

<a id="switch" href="javascript: void(0)" onClick="widget.preferences.version = 'newmenu'; document.getElementById('switch').innerHTML = 'Please reload the extension';">[Switch to Normal View]</a>

widget.preferences.version = 'newmenu' в этом файле oldmenu.html устанавливает предпочтение пользователя для использования нового меню и widget.preferences.version = 'oldmenu' (здесь не показано), расположенное в menu.html, задает предпочтение пользователя для использования старого меню.

Затем в файле index.html расширение проверяет, должно ли оно показывать старое меню или новое меню.

if (widget.preferences.version == "oldmenu") {
   var ToolbarUIItemProperties = {title: "4chan Boards", icon: "icons/icon_64x64.png", popup: {href: "oldmenu.html", width: 220, height: 620}}
} else {
   var ToolbarUIItemProperties = {title: "4chan Boards", icon: "icons/icon_64x64.png", popup: {href: "menu.html", width: 250, height: 350}}
}

Теперь проблема в том, что для выполнения этого кода пользователь должен вручную перезагрузить расширение, что очень некрасиво.

Ну, так как форум разработчиков Opera в настоящее время недоступен (плохие шлюзы и долгое время загрузки), я думаю, что это лучшее место, чтобы задать мой вопрос. Спасибо за ваше время.


person Yatoom    schedule 27.05.2012    source источник


Ответы (1)


Что ж, эта строка решила часть проблемы. Строка находится в index.html.

theButton.onclick = function(){if (widget.preferences.version =="oldmenu") {theButton.popup.href = "oldmenu.html";}; if (widget.preferences.version == "newmenu"){theButton.popup.href = "menu.html";};};

Кроме того, просто немного изменив эти строки и добавив href, можно было очень быстро переключаться между меню. Раньше такой возможности не было, так как она переключалась только один раз и автоматически переключалась обратно при повторном открытии кнопки.

<a href="oldmenu.html" onClick="widget.preferences.version = 'oldmenu';">List view</a>
<a href="menu.html" onClick="widget.preferences.version = 'newmenu';">[Switch to Normal View]</a>

Однако мне не удалось изменить высоту и ширину всплывающего окна таким образом. Итак, я просто сделал компромисс между двумя меню;)

person Yatoom    schedule 29.05.2012