Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing Dojo contentpane/选项卡解析问题_Parsing_Tabs_Widget_Dojo - Fatal编程技术网

Parsing Dojo contentpane/选项卡解析问题

Parsing Dojo contentpane/选项卡解析问题,parsing,tabs,widget,dojo,Parsing,Tabs,Widget,Dojo,我在将HTML标记解析为Dojo小部件时遇到问题。以下是我正在做的: var tab = new dijit.layout.ContentPane({ title: "xyz", parseOnLoad: false, //I am doing this intentionally href: "some-relative-url" }); tabPane.addChild(tab); 现在,如果我用parseOnLoad=true测试这个,我会很好地加载我的小部

我在将HTML标记解析为Dojo小部件时遇到问题。以下是我正在做的:

var tab = new dijit.layout.ContentPane({
    title: "xyz",
    parseOnLoad: false,   //I am doing this intentionally
    href: "some-relative-url"
});

tabPane.addChild(tab);
现在,如果我用parseOnLoad=true测试这个,我会很好地加载我的小部件。然而,我试图在HTML变成小部件之前对其进行处理。因此,我通过添加parseOnLoad:false选项延迟了解析。我绑定了一个要在加载选项卡时调用的函数(即Ajax调用完成),如下所示:

dojo.connect (tab, "onDownloadEnd", myFunction);

function myFunction() {

   //manipulate the HTML code via this.content
   dojo.parser.parse(this);   //this doesn't do anything. I tried many variations!
}
所以当我这样做的时候,结果是我加载了标签,但没有小部件,只有标准的HTML控件。那么,为什么在这个场景中没有触发解析器,我可以做些什么使它在我的被操纵的HTML上工作呢


谢谢

在该上下文中,此
可能是
窗口
对象,因为您没有在
连接中专门设置作用域(根据您发布的代码,我假设
myFunction()
是一个自由函数,而不是一个方法

您需要传递
dojo.parser.parse
一个DOM节点。假设
tab
是一个小部件,您可以使用
dojo.parser.parse(tab.domNode)
如果函数是在
tab
的可用性上下文中定义的。如果
this
的作用域是tab小部件,那么您可以使用
dojo.parser.parse(this.domNode)
正如您在评论中所说


您可以使用强大的
dojo.hitch
:)强制作用域。请阅读文档,我推荐。

我不确定myFunction中的
这个
是DOM节点,我认为它必须用于
parse()
才能执行任何操作。尝试
dojo.parser.parse(this.get(“domNode”)有趣的是,我只是尝试了一些类似的东西,但效果很好,但是没有足够的声誉来回答我自己的问题,所以我现在只能使用这里的评论。这对我有用:dojo.parser.parse(This.domNode);