Tôi đang làm việc trên một dự án nhỏ trong JavaScript/jQuery.Tạo cửa sổ mới bằng cách sử dụng jquery
Để hiển thị các kết quả từ tính thực hiện trong javascript, tôi muốn mở một cửa sổ mới với một số nội dung được xác định trước và sửa đổi nội dung này để hiển thị kết quả: Im sử dụng mã như thế này:
var resultwindow = window.open('result.html')
var doc = $('body', resultwindow.document);
doc.append("<p>Result</p>")
Điều này không hoạt động vì tài liệu kết quả chưa được tải khi tôi thêm nội dung, vì vậy nó được ghi đè bằng nội dung của 'result.html'.
Tôi cũng đã cố gắng
$(resultwindow.document).ready(function() {
// ... Fill result document here
})
và
$(resultwindow.document).load(function() {
// ... Fill result document here
})
nhưng ready()
chỉ hoạt động trên các tài liệu hiện tại (nó được gọi là ngay lập tức, nếu tài liệu hiện nay đã được nạp), và load
không được gọi là tất cả.
Có lẽ ai đó có thể chỉ cho tôi đúng hướng. Cảm ơn trước!
EDIT:
cuối cùng tôi giải quyết điều này bằng cách tạo ra các tài liệu mới "bằng tay" trong Javascript như:
w = window.open('','newwinow','width=800,height=600,menubar=1,status=0,scrollbars=1,resizable=1);
d = w.document.open("text/html","replace");
d.writeln('<html><head>' +
'<link rel="stylesheet" type="text/css" href="style.cs"/></head>' +
+'<body></body></html>');
// use d to manipulate DOM of new document and display results
Nếu tôi được làm điều tương tự ngày hôm nay (hai năm kinh nghiệm sau này), tôi sẽ sử dụng một số thư viện mẫu Javascript như Handlebars để duy trì mẫu và biên dịch nó thành javscript.
Martin bạn có làm việc này không? Tôi có một vấn đề tương tự. – Shaunak
@Shaunak Tôi đã đăng giải pháp của mình từ hai năm trước như là chỉnh sửa cho câu hỏi, cũng đã đề cập đến cách tôi sẽ giải quyết nó hôm nay ... hth. – MartinStettner