Javascript Can';不能在Firefox扩展中使用Ajax响应

Javascript Can';不能在Firefox扩展中使用Ajax响应,javascript,ajax,jquery,firefox-addon,Javascript,Ajax,Jquery,Firefox Addon,我正在编写一个简单的AJAX调用,它返回一个完整的HTML页面,然后我尝试从这个响应中获取一些我需要的值。我不知道为什么它不起作用,我已经做了我能想到的一切。当我将代码作为另一个HTML页面的一部分,而不是作为Firefox扩展的一部分时,它就可以工作了,这就是问题所在:我正在编写Firefox扩展 在Firefox扩展中,我得到一个响应,我可以发出警报,它就在那里(即,我看到响应文本)!但是我不能打电话给.find,.filter,或者其他任何东西。代码在success函数中的某个点悄无声息地

我正在编写一个简单的AJAX调用,它返回一个完整的HTML页面,然后我尝试从这个响应中获取一些我需要的值。我不知道为什么它不起作用,我已经做了我能想到的一切。当我将代码作为另一个HTML页面的一部分,而不是作为Firefox扩展的一部分时,它就可以工作了,这就是问题所在:我正在编写Firefox扩展

在Firefox扩展中,我得到一个响应,我可以发出警报,它就在那里(即,我看到响应文本)!但是我不能打电话给
.find
.filter
,或者其他任何东西。代码在success函数中的某个点悄无声息地中断,什么也没有发生

这是我的密码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <title>runthis</title>

        <script type="text/javascript" language="javascript" src="jquery-1.6.2.js"></script>

        <script type="text/javascript">
        $(document).ready(function(){
                $('input').click(function(){
                var makeTransferURL = "empty";
                                var pc = "empty";

                        $.ajax({//Transfer
                            type: "POST",
                            url: "http://localhost/transfer2.html",
                            data: "",
                            dataType: "html",
                            context: document.body,
                            success: function(response){
                                var table = $(response).find('table.123RowSeparator');
                                var a     = table.find('a[href*="123"]');
                                var href  = a.attr("href");
                                makeTransferURL = href;
                                var link = makeTransferURL.indexOf('PC_');
                                pc = makeTransferURL.substring(link, (link + 11));
                                alert(pc);
                            },
                            error: function() {
                                alert("Sorry, The requested property could not be found.");
                            }  
                        });
                });
        });
        </script>
</head>
<body>
        <input type="button" value="load" />
</body>
</html>
我需要知道为什么

以下是响应的HTTP头:

HTTP/1.1 200 OK
Date: Mon, 11 Jul 2011 10:43:32 GMT
Server: Apache/2.2.19 (Win32)
Last-Modified: Wed, 06 Jul 2011 12:41:47 GMT
ETag: "9000000015529-f7b9-4a765ec7780ff"
Accept-Ranges: bytes
Content-Length: 63417
Keep-Alive: timeout=5, max=97
Connection: Keep-Alive
Content-Type: text/html

找到了解决办法,它不是优雅的(或正确的做法),但给我一个休息!没有人回答:)

以下是我为实现这一目标所做的工作:

$('#divid').css('display', 'none');
                response = response.replace(/<head>(?:.|\n|\r)+?<\/head>/ig, "");
                doc.getElementById('divid').innerHTML = response.replace(/<script[^>]*>[\S\s]*?<\/script[^>]*>/ig, "");
                var table = $('#divid').find('whateveryoufeellike');
$('divid').css('display','none');
response=response.replace(/(?:.|\n |\r)+?/ig,“”);
doc.getElementById('divid')。innerHTML=response.replace(/]*>[\S\S]*?]*>/ig,”);
var table=$('divid')。查找('whateveryoufeellike');
所以我认为问题在于我得到的是一个普通的HTML格式的字符串,而我不能在这样的字符串上使用jQuery函数,比如.find和.filter。获取字符串并使用regex,将其从头部和脚本标记上剥离,然后(可能是图像处理过快)转储我创建的Div中剩下的内容。但在将div设置为隐藏以便代码不显示之前,不能这样做。用户真的感觉没有什么不同,我现在可以使用DOM作为主页,运行所有的.finds和.filters,这是我的心愿


它的美妙之处在于,在同一页面上具有相同id/类的标记之间不会有任何冲突问题,只要您在页面中创建的Div的名称对该页面是唯一的。所以一些真正随机的东西将是一个不错的选择:D建议!HWSyujtewq$y$y$w£t!“£%^(&)%$dsfdgjnbfdvsc

如果这有助于更清楚地说明问题,我认为jQuery名称空间存在问题,当它多次包含在浏览器/加载项的不同部分时,对于调用哪个方法存在混淆!
$('#divid').css('display', 'none');
                response = response.replace(/<head>(?:.|\n|\r)+?<\/head>/ig, "");
                doc.getElementById('divid').innerHTML = response.replace(/<script[^>]*>[\S\s]*?<\/script[^>]*>/ig, "");
                var table = $('#divid').find('whateveryoufeellike');