Trước hết, đây không phải là cách lý tưởng để thiết lập trang, tuy nhiên cần phân phối tập lệnh dưới dạng 1 tệp.Lỗi Firefox 'không tìm thấy phần tử'
Tôi có tập lệnh php ở đầu tài liệu xhtml khác với javascript và trong một số điều kiện nhất định, hãy sử dụng XHR để gửi chuỗi truy vấn đến chính trang đó. Các php ở đầu sau đó kích hoạt, và lưu trữ các nội dung thông qua như là một phiên, và sau đó giết chết chính nó (exit()). XHR không đồng bộ và không bao giờ được kiểm tra xem nó có trả về nội dung hay không.
Tuy nhiên trong Firefox 3, bảng điều khiển lỗi đưa ra lỗi no element found
mỗi khi yêu cầu XHR được gửi. Ngoài ra, nếu tôi sử dụng lối ra như exit('Done')
, Firefox sẽ ném lỗi cú pháp của (Xong) như thể chèn nó vào DOM hiển thị. Điều này dường như không xảy ra trong Opera.
Có cách nào tốt hơn để lưu trữ phiên từ một trang xhtml đã được tạo không? Rõ ràng tôi có thể XHR đến một trang khác, nhưng tôi muốn giữ nó trên một kịch bản. Firefox có coi các yêu cầu XHR là bản cập nhật cho DOM không? Tôi không biết tại sao nó gửi lỗi này.
Cập nhật Như tôi đã nói, firefox chỉ thows lỗi khi yêu cầu XHR được thực hiện. Trang này là XHTML hợp lệ và hoạt động hoàn hảo, không có lỗi trừ khi yêu cầu XHR được tạo cho chính trang đó.
Tôi đã tự hỏi tại sao nó đã gửi lỗi bởi vì nó thực sự không trả lại bất cứ điều gì.
Đây là đoạn mã javascript tạo yêu cầu ajax từ một đối tượng. Nó tạo ra một đối tượng XHR, không có chức năng gọi lại và đăng thông tin. Nó hoạt động đúng khi không tham chiếu cùng một trang.
var saveState = { saveContent: function(updateActiveMenu) {
var sendState = new ajaxObject(gV.url);
if (!updateActiveMenu) {
var storageContainer = document.getElementById("StorageContainer").innerHTML;
var menu = document.getElementById("Nav").innerHTML;
sendState.update("Containerstring="+urlencode(storageContainer)+"&Nav="+urlencode(menu)+"&Active="+gV.activeMenuItem, 'POST', true); } }, }
Và php thực hiện điều này
if (isset($_REQUEST['Containerstring']) && isset($_REQUEST['Nav']) && isset($_REQUEST['Active'])) {
$_SESSION['Containerarray'] = (saveContainer(regulateEscapes(urldecode($_REQUEST['Containerstring']))));
$_SESSION['Navarray'] = (saveNav(regulateEscapes(urldecode($_REQUEST['Nav']))));
$_SESSION['Active'] = $_REQUEST['Active'];
exit('Done');
}
Tôi cũng biết tôi không nên sử dụng innerHTML nhưng đó là một câu chuyện
Lỗi này là này
Error: no element found
Source File: http://localhost/ajax.php?1244648094055
Line: 1
Lưu ý rằng lỗi, trong khi trên trang trang hp tôi đang sử dụng, tham chiếu chuỗi truy vấn không bao giờ được gọi.
có một số mâu thuẫn trong những gì bạn mô tả. nếu XHR không bao giờ sử dụng giá trị trả về (mà là 'Xong') sau đó nó không thể chèn nó vào một DOM, bây giờ có thể nó? – SilentGhost
thậm chí tốt hơn nên đăng một số ví dụ nhỏ về mã của bạn. – SilentGhost
Tại sao không đặt các phần liên quan của nguồn của trang lên? –