Диалог как в мастере с использованием вкладки midori, не работающей в Chrome - PullRequest
0 голосов
/ 31 августа 2011

Я пытаюсь создать веб-диалоговое окно, похожее на мастер, с помощью фреймворка midori javascript.

Вот что у меня есть:

<div id="uploadTab">
    <div id="categories" class="tab-set">
       <ul>
          <li class="tab-selected"><a id="tabConfig" href="#config">Configuration</a></li>
          <li><a id="tabDescription" href="#description">Description</a></li>

       </ul>
    </div>
    <div class="tab-content">
       <div id="config">
               <p>Hit Continue to go to next tab</p>
               <div class="tabButton">
                       <input type="button" name="configNext" value="Continue" onclick="return selectTab('#tabDescription');" />
               </div>
       </div>
       <div id="description" style="display: none">
               Description
       </div>
    </div>
</div>
<script type="text/javascript">midori.addEventListener(window, 'ready', function (e) { midoriTab.init() } );</script>

И функция javascript, которая вызывает click () по ссылке на целевой вкладке

function selectTab(tabID) {
    var t=midori.get(tabID);
    if (typeof t!='undefined') {
            t.click();
    }
    return false;
}

Это работает в Firefox и Opera, но в Chrome я получаю:

Uncaught TypError: Object: http://mysite.com # description не имеет метода 'click'

Я также попытался использовать onclick () вместо click (), что дает мне:

Uncaught TypeError: Свойство 'onclick' объекта http://mysite.com # description не является функцией

Можно ли заставить это работать в Chrome?

1 Ответ

0 голосов
/ 31 августа 2011

Решенная проблема:

Лучший способ отправить событие onclick, которое работает на Opera, Firefox и Chrome:

function selectTab(tabID) {
    var t=midori.get(tabID);
    if (typeof t!='undefined') {
            var e = document.createEvent('MouseEvents');
            e.initMouseEvent( 'click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null );
            t.dispatchEvent(e);
    }
    return false;
}
...