ZK:从Google Chrome中的操作调用JavaScript方法时出现问题

时间:2010-04-02 10:21:23

标签: javascript google-chrome zk

我有一个带有简单窗口描述的zul文件,其中包含带操作的按钮:

<?xml version="1.0" encoding="UTF-8"?>
<zk xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns="http://www.zkoss.org/2005/zul"
    xmlns:zk="http://www.zkoss.org/2005/zk"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">

    <window title="My First Window" border="normal" width="200px">
    <button label="click me" action="onclick:initObj()" />
      <script type="text/javascript" defer="true">
                 function initObj() {
                    alert('initObj invoked');
                    zkJScriptObject.init();
                }
                zkJScriptObject = {
                   init: function () {
                     alert('init invoked');
                    }
                };
      </script>
    </window>
</zk>

单击该按钮成功调用Javascript函数initObj()并在FireFox和IE中显示警报,但在Google Chrome中导致错误“Uncaught ReferenceError:initObj未定义”。 您有任何建议吗,Google Chrome中出现此问题的原因是什么?如何解决?

P.S。我正在使用ZK 3.6.3。

PPS。指定的zul描述呈现为该html代码:

<div id="zkau_798" z.type="zul.wnd2.Wnd2" z.autoz="true" class="z-window-embedded" style="width:200px;"
     z.zcls="z-window-embedded" z.minheight="100" z.minwidth="200">
    <div class="z-window-embedded-tl">
        <div class="z-window-embedded-tr"></div>
    </div>
    <div class="z-window-embedded-hl">
        <div class="z-window-embedded-hr">
            <div class="z-window-embedded-hm">
                <div id="zkau_798!caption" class="z-window-embedded-header">My First Window</div>
            </div>
        </div>
    </div>
    <div id="zkau_798!cave" class=" z-window-embedded-cnt">
    <span z.type="zul.btn.Button" id="zkau_799" class="z-button" z.zcls="z-button">
        <table id="zkau_799!box"
                  cellspacing="0"
                  cellpadding="0" border="0"
                  class="z-button"
                  onclick="initObj()"
                  style="-webkit-user-select: none; ">
        <tbody>
            <tr>
                <td class="z-button-tl">
                    <button id="zkau_799!real" class="z-button"></button>
                </td>
                <td class="z-button-tm"></td>
                <td class="z-button-tr"></td>
            </tr>
            <tr>
                <td class="z-button-cl"></td>
                <td class="z-button-cm">click me</td>
                <td class="z-button-cr">
                    <div></div>
                </td>
            </tr>
            <tr>
                <td class="z-button-bl"></td>
                <td class="z-button-bm"></td>
                <td class="z-button-br"></td>
            </tr>
        </tbody>
    </table>
    </span>
        <script id="zkau_800" type="text/javascript" defer="defer">
            function initObj() {
                alert('initObj invoked');
                zkJScriptObject.init();
            }
            zkJScriptObject = {
                init: function () {
                    alert('init invoked');
                }
            };
        </script>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

这个答案将为您提供一些使用延迟的重点:

Defer Attribute (Chrome): What do defer and async mean?