2011-01-11 26 views
5

Trong khi tôi đang cố chèn một khung nội tuyến bằng documnet.write trong IE, tôi đã thành công. Nhưng, bất kỳ mã html nào sau đó không được thực hiện.Bất kỳ mã HTML nào sau khi khung nội tuyến không được thực thi bằng cách sử dụng document.write

document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>"); 

Chuỗi "Bye Bye" này không được thực thi.

Trong giây lát kiểm tra xem bạn có thể gõ vào url trình duyệt của bạn

javascript:document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>"); 

Sau khi thực hiện thử và sai, tôi thấy rằng nếu tôi đóng thẻ iframe theo cách sau, nó hoạt động.

<iframe ...></iframe> instead of <iframe ... /> 

Bây giờ, vấn đề là: "Tôi không có bất kỳ cơ hội để thay đổi <iframe ../>-<iframe .. ></iframe>". Tìm kiếm lời khuyên tốt bụng của bạn.

+0

DOCTYPE Những gì bạn đang sử dụng? –

+0

@Pekka Hoque

+0

aww, điều này có thể không thể giải quyết được. Bạn hoàn toàn không có cách nào thay đổi chuỗi? Tôi nghĩ rằng có một vấn đề tương tự với các thẻ '

1

Nếu bạn không có bất kỳ cơ hội để thay đổi cả chuỗi (ví dụ: bạn không thể đọc nó trước) và phần document.write của mã, tôi giả sử bạn ít nhất có quyền chỉnh sửa/chèn một số mã trong tài liệu (nếu không bạn không nên có câu hỏi này vì bạn hoàn toàn không thể làm gì cả).

Bằng cách đó, hãy thử luyện phương pháp document.write() bằng cách chèn một số mã trước khi sự việc xảy ra:

document.write=function(str){ 
    str=str.replace(/<iframe([^>]*?)\/>/ig,'<iframe$1></iframe>'); 
    return document.writeln(str); 
} 
Các vấn đề liên quan