Dưới đây là một số mẫu mã:Finding currentScript trong HTML
HTML
<script> alert('This is alert!') </script>
JS
window.alert = function(data) //alert() over-riding
{
scriptObject = document.currentScript; //gives me <script> object
}
Cập nhật: Đoạn mã trên không dường như làm việc ngay bây giờ (Nó hoạt động sớm hơn, compatibility removed for IE) trong Internet Explorer 11.420.10586.0. Tại sao nó có thể tìm thấy đối tượng Script trong Chrome, Firefox, Safari và Microsoft Edge, nhưng không phải trong Internet Explorer? Có cách nào khác không?
Vấn đề:
HTML
<script> ReferenceError.prototype.__defineGetter__('name', function fff() { javascript:alert(1) }),x </script>
JS
window.alert = function(data) //alert() over-riding
{
scriptObject = ? // I need to get the Script object
}
tôi đã cố gắng arguments.callee.caller
để vây d fff()
, nhưng không thể bắt đối tượng tập lệnh.
Cảnh báo() không thực thi trong Chrome cho tập lệnh ở trên. Sử dụng Firefox, thay vào đó. Tôi không thể nhận được đối tượng kịch bản trong bất kỳ trình duyệt nào.
Bất kỳ giải pháp nào?
https://developer.mozilla.org/en-US/docs/Web/API/Tài liệu/currentScript # Browser_compatibility <- xem bảng hỗ trợ, nghi ngờ nó hoạt động trong IE11 trước đây. – epascarello
Rất tiếc. IE đã được cập nhật nội bộ, có thể được. Có cách nào thay thế cho IE không? –