0

我在 Internet Explorer 7/8 中遇到了 Dojo 的问题(这在 Firefox 中运行良好)。

基本上我有一个标签容器,里面有许多标签(这些是 dojox.layout.ContentPane 的)。在其中一个选项卡上,我想要一个“评论框”,它会弹出一个对话框并要求用户输入一些内容。然后通过调用后端保存评论,我希望重新加载选项卡以显示新评论。

我的保存按钮的逻辑是这样的:

<button data-dojo-type="dijit.form.Button" type="button" data-dojo-props="iconClass:'dijitIcon dijitIconSave', showLabel: true" title="Add your comment">Add Comment
    <script type="dojo/on" data-dojo-event="click" data-dojo-args="evt">
      require(["dojo/dom"], function(dom)
      {
        var tText = dijit.byId('comment_70').get('value');
        if (tText == '')
        {
          alert('You have not entered any comment');
          return;
        }
        var tJSONRPC = new JSONRpcClient('JSON-RPC');
        try
        {
          tJSONRPC.be.addComment('70', tText);
          var tTab = dijit.byId('Detail_70');
          tTab.refresh();
        }
        catch (Ex)
        {
          alert(Ex);
        }
      });
    </script></button>

似乎并不可怕(最后的 70 是 ID,因此用户可以同时打开多个其中的一个,因此是选项卡)。

如前所述,这在 Firefox 中可以正常工作,但在 IE 8/7 中无法正常工作,它会在 dojo 中的某些生成代码中引发错误(准确地说是_32.focus();),我在调试控制台中收到的错误消息是“对方法或属性访问的意外调用”

4

1 回答 1

0

试试这个,用你的线tTab.refresh();

setTimeout(function() { tTab.refresh(); }, 0); // whenIdle

几乎不可能知道抛出的异常来自哪里 - 您应该使用开发 dojo-1.Mmsrc /dojo/dojo.js代码,以便扩展优化的函数和变量名称(以及有用的注释一旦你步骤 -通过调试)。

上述原因是为了消除,在处理按钮 onclick-focus 事件时发生异常(刷新将拆除选项卡中的 DOM - 以及您的按钮)

于 2012-07-23T20:18:02.333 回答