0

我有一个 Dojo (1.8) 内容窗格

<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="splitter:false, region:'leading', href:'page2.php?name=variableName'" style="width: 100%; height: 100%;" id="embeddedPg"> <!-- Embedded content shown here --> </div>

我正在尝试href更改data-dojo-props. 我写了一个JavaScript函数如下:

function loadInfo(tableName){           
        var dojowidget = document.getElementById("embeddedPg");
        dojowidget.setAttribute("data-dojo-props","href:page2.php?name="+tableName);
    }

当用户单击页面上的特定链接时调用此函数,并被适当地调用。
它没有给我任何 JavaScript 错误,但它也不起作用。这样做的正确方法是什么?我正在使用 Dojo 1.8。

4

1 回答 1

1

document.getElementById不返回 dojo 小部件。它只是返回 DOM 对象。

要访问 dojo 小部件,您应该使用dijit/registry.byId. 您可以通过更改 href 属性,ContentPane's attr(name,value)并且应该调用refresh()以显示它。

require(["dijit/layout/ContentPane", "dijit/registry",  "dojo/domReady!"]
  ,function(ContentPane, registry) {

    var refreshPage = function(tableName) {
        var cPane = registry.byId("embeddedPg");
        cPane.attr("href", "page2.php?name="+tableName);
        cPane.refresh();
    }
});
于 2012-10-14T05:58:57.787 回答