0

私は Dojo (1.8) contentpaneを持っています:

<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.getElementByIdDojo ウィジェットを返しません。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 に答える