我们希望实施创新的用户界面。实际上我们正在做的事情如下:
这是我们实际所做工作的简化版本,但它的目的是说明我目前面临的问题。
实际上,当使用$ .get(url)提取的页面包含纯HTML时,我没有问题。但是,如果使用$ .get(url)提取的页面包含Ext.NET代码,那么我不会返回任何内容。
实际上,Ext.NET代码本身正在调用其他脚本并在DOM中插入元素。这导致了一个问题,因为我的代码执行转到回调函数之前 Ext.NET有时间插入我试图访问的内容。
因此,解决此问题的一个天真的尝试是等到Ext.NET完成填充页面然后将代码执行返回到回调函数。问题是我该怎么做?实际上有没有更好的方法来实现我想要做的事情,即确保$ .get(url)完全运行它以便我的输出div正确填充?
我想我可以沿着使用iFrame的路线走下去,但我想尽可能避免这种情况,因为这会增加已经很复杂的界面的复杂性。
答案 0 :(得分:1)
提取由渲染的Ext.NET组件生成的html应该是可能的,虽然我认为你会错过另一个重要的方面......附加到每个组件的DOM事件。
您需要的是在原始有效负载PLUS中发送的任何html以及用于生成页面的JavaScript,您需要在父页面上执行该JavaScript。只是带来html并不会让你受益匪浅。
如果您在父页面上运行Ext.NET,则可能需要使用任何Container类型上的可用功能进行调查。基本功能是获取远程页面/ html +脚本并执行该脚本。
以下示例演示。
示例强>
<ext:Panel runat="server" Title="Example">
<AutoLoad Url="example.html" />
</ext:Panel>
希望这有帮助。
答案 1 :(得分:0)
您需要使用
async: false,
这样的电话也是如此..
$.ajax({
type: "GET", // Don't need to declare this..
url: 'url.html',
async: false,
success: function(data) {
// Do something with the returned data..
}
});