Вопрос всплывающего окна гаджета Windows 7 - PullRequest
1 голос
/ 02 ноября 2009

Я создал гаджет, который отображает фид с веб-сайта и отображает его в главном окне. Если я нажимаю на одну из новостей, я получаю всплывающее окно, и оно дает мне больше информации. У меня также есть опция поиска в основной части, которая выполняет поиск на сайте, но она открывается в окне браузера.

Мой вопрос: как мне сделать функцию поиска открытой во всплывающем окне? Есть ли способ связать кнопку поиска с файлом flyout_2? Может быть, кто-то может указать мне правильное направление.

1 Ответ

2 голосов
/ 02 ноября 2009

Всплывающие окна должны открываться вручную.

Весь интерфейс - суп. Всплывающее окно также должно указывать на действительную HTML-страницу (локально или удаленно, это не имеет значения). Однако после загрузки вы можете обращаться с DOM так, как вам нравится.

Как говорится, перехватите событие "search" и отобразите его во всплывающей DOM. Это может быть перенаправление самой выпадающей панели, iframe с динамически установленной целью или другие манипуляции с DOM.

Одна хитрость, которую я использовал, - это использование «универсальной» всплывающей подсказки, которая просто вызывает метод родительского окна, передавая его в качестве параметра (всплывающие окна являются просто дочерними окнами), а затем позволяет «основному» гаджету фактически обрабатывать Работа DOM на основе контекста.

// in "fuout.html"
jQuery(function ($j) {
    var parent = System.Gadget.document
    parent.loadFuout(document, $j)
})

// in main gadget html
document.loadFuout = function (fuout, _j) {
    // other stuff based on current flyout context...
    // fuout is document object of flyout
}

Обратите внимание: в моем случае я запускаю слегка измененный jQuery, в котором документ связан в закрытии. Это позволяет мне ссылаться на «правильный объект jQuery для документа», доступ к которому осуществляется через _j.

...