Вы также можете подключить прототип отправки XMLHttpRequest. Это будет работать для всех отправлений (jQuery / dojo / etc) с помощью одного обработчика.
Я написал этот код для обработки ошибки на 500 страниц с истекшим сроком действия, но он должен работать так же, как и ловушку перенаправления 200. Готов к записи wikipedia в XMLHttpRequest onreadystatechange о значении readyState.
// Hook XMLHttpRequest
var oldXMLHttpRequestSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function() {
//console.dir( this );
this.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 500 && this.responseText.indexOf("Expired") != -1) {
try {
document.documentElement.innerHTML = this.responseText;
} catch(error) {
// IE makes document.documentElement read only
document.body.innerHTML = this.responseText;
}
}
};
oldXMLHttpRequestSend.apply(this, arguments);
}
Вы могли попытаться голосовать время от времени.
function checkReady() {
var svg = document.getElementById("chart").getSVGDocument();
if (svg == null) {
setTimeout("checkReady()", 300);
} else {
...
}
}
Вы можете назначить onload обработчик событий на элемент в рамках Вашего документа SVG и иметь его, вызывают функцию JavaScript в странице HTML. onload наносит на карту к SVGLoad.
http://www.w3.org/TR/SVG11/interact.html#LoadEvent
событие вызвано в пункте, в котором пользовательский агент полностью разобрал элемент и его потомков и готов действовать соответственно на тот элемент
Вкл. ваш элемент встраивания (например,g 'embed', 'object', 'iframe') в основном документе добавьте атрибут onload
, который вызывает вашу функцию, или добавьте прослушиватель событий в скрипт, например embeddingElm.addEventListener ('load ', callbackFunction, false)
. Другой вариант - прослушивание DOMContentLoaded
, в зависимости от того, для чего вы этого хотите.
Вы также можете добавить прослушиватель загрузки в основной документ. jQuery (document) .ready
не означает, что все ресурсы загружены, просто в самом документе есть модель DOM, готовая к действию. Однако обратите внимание, что если вы прослушиваете загрузку всего документа, ваша функция обратного вызова не будет вызываться до тех пор, пока не будут загружены все ресурсы в этом документе, css, javascript и т. Д.
Если вы используете встроенный svg, тогда jQuery (document ) .ready
, однако, будет работать нормально.
В следующем примечании вы можете рассмотреть возможность использования embeddingElm.contentDocument
(если доступно) вместо embeddingElm.getSVGDocument ()
.