【问题标题】:Accessing HTML that loads in AJAX访问在 AJAX 中加载的 HTML
【发布时间】:2014-02-25 04:08:34
【问题描述】:

我正在尝试在访问页面时仅加载页面骨架的应用程序上使用 CasperJS。然后它在 AJAX 中加载主要内容。

基本上,我的代码加载后出现在下面的div中

    <div class="content"></div>

CasperJS 似乎在初始加载后无法访问此 div 的内容。而且太糟糕了,因为整个应用程序都在这个标签内(不要怪我,要怪使用 Backbone 的开发者)。

经过大量搜索,我发现我或许可以使用evaluate 函数来执行document.body.innerHTML 将请求的HTML 的内容转储到文档中,但它似乎不起作用。

有什么想法吗?提前非常感谢。

【问题讨论】:

    标签: ajax casperjs


    【解决方案1】:

    正如您所发现的,您应该能够通过使用评估来获取 div 内容。 eval 函数应该返回所需的值。

    如果内容是通过 AJAX 加载的,您还应该等到它加载完毕。我建议使用这个:

    var body_html;
    this.waitForSelectorTextChange('div.content', function() {
       body_html = this.evaluate(function() {
           return document.body.innerHTML;
       });
    });
    

    希望对你有帮助

    【讨论】:

    • 非常感谢@gontrollez。我现在无法测试它是否有效,但我会检查并让您知道它是否有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多