PhantomJS:执行AJAX调用的事件处理程序

PhantomJS:执行AJAX调用的事件处理程序,ajax,phantomjs,Ajax,Phantomjs,这是PhantomJS的一个简单测试用例,用于演示在调用时执行AJAX调用的事件处理程序不起作用 我在这里创建了一个简单的测试,以尝试访问通过AJAX加载的一些内容。很可能我做错了什么,如果是这样的话,我希望有人能指出这是什么。然而,如果不是,我认为幻影有一个问题 这是一个简单的页面,其中包含一个绑定了更改事件的单个页面。当值更改时,它将从服务器加载一些内容,并替换特定内容的内容 ajax调用完成并处理后,foo的文本应更改为“bar” 有人能帮我吗 <html> <head&

这是PhantomJS的一个简单测试用例,用于演示在调用时执行AJAX调用的事件处理程序不起作用

我在这里创建了一个简单的测试,以尝试访问通过AJAX加载的一些内容。很可能我做错了什么,如果是这样的话,我希望有人能指出这是什么。然而,如果不是,我认为幻影有一个问题

这是一个简单的页面,其中包含一个绑定了更改事件的单个页面。当值更改时,它将从服务器加载一些内容,并替换特定内容的内容

ajax调用完成并处理后,foo的文本应更改为“bar”

有人能帮我吗

<html>
<head>
    <title>AJAX test</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
        $(function(){
            $('#getBar').change(function() {
                $('#bar').load("/test/bar");
            });
        });
    </script>
</head>
<body>
    <h1>Foo</h1>
    <div>
        <select id="getBar">
            <option value=""></option>
            <option value="go" id="go">Get Bar Text</option>
        </select>
    </div>
    <p id="bar">foo</p>
</body>
</html>
这是输出。我希望文本从“foo”变为“bar”,但这从未发生过

DEBUG: CHANGE THE SELECT
DEBUG: OLD TEXT: foo
DEBUG: SELECT VALUE AFTER UDPATE: go
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: step 5
DEBUG: PRINT PAGE TITLE
DEBUG: AJAX test
DEBUG: test complete!

顺便说一句,幻影JS 1.7。这是一个伟大的项目


上面列出的示例的问题是,我只是将jQuery注入到已经有jQuery的页面中。当我停止这样做时,它起了作用。

与其每隔500毫秒检查一次标题是否已更改,不如拦截onResourceRequested中的所有请求(您可以将自定义头添加到所有ajax请求并检查其持久性),并在其他答案中解析:$jq=window.jQuery$jq.noConflict()$jq('body').offset();啊!我也犯了同样的错误,注入了jQuery,它把我的页面搞砸了。。。移除了注入,砰!谢谢
DEBUG: CHANGE THE SELECT
DEBUG: OLD TEXT: foo
DEBUG: SELECT VALUE AFTER UDPATE: go
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: NEW TEXT: foo
DEBUG: step 5
DEBUG: PRINT PAGE TITLE
DEBUG: AJAX test
DEBUG: test complete!