您可以從DOM ID新增id來script標籤,然後把它拿來:
document.write('<script type="text/javascript" src="/plugin.js" id="myscript"></script>');
if (document.getElementById('myscript')) {
console.info('success');
} else {
console.error('failure');
}
,或者你可以嘗試找到它在網頁上的所有腳本,如果你不想改變什麼:
document.write('<script type="text/javascript" src="/plugin.js"></script>');
(function() {
var scripts = document.getElementsByTagName('script'),
l = scripts.length - 1;
// If you'll check that just after document.write then it should be last script
// in the other case you would need to check all scripts.
// From src I'm removing domain - at least Safari is returning full URL here
if (scripts.length && scripts[l - 1].src && scripts[l - 1].src.replace(/^([a-z]+:\/\/[^\/]*)/i, '') == '/plugin.js') {
console.info('success');
} else {
console.error('failure');
}
}());
感謝這似乎工作得很好,雖然理想的id像一個解決方案,不會增加額外的標記。 – gunnx
通常,您可以直接將該id添加到腳本標記中,以便不添加測試節點,或者甚至可以檢查其父節點是否包含腳本或以其他方式查找它 – lupatus
是和腳本上的ID屬性是更簡潔的解決方案。你知道是否有任何條件會導致document.write引發異常,或者是try catch沒有意義嗎? – gunnx