1
我在使用在Greasemonkey腳本上調用getResponseHeader
時獲得的值時出現問題。無法使用通過調用getResponseHeader獲得的值
首先,我聲明如下全局變量:
size = 0;
maxS = 153600; // Max. size (bytes).
一旦網站已經完全加載,我的主要函數被調用,並在它的內部,我得到了一定專區內的所有圖像(其這裏沒有顯示,因爲它是不相關):
function main() {
...
var imgs = posts[i].getElementsByTagName('img');
for (var j = 0; j < imgs.length; ++j) {
getFileSize(imgs[j].src, responseHandler);
if (size > maxS)
// Do something
}
...
}
這是怎麼getFileSize
作品:
var getFileSize = function(address, responseHandler) {
var req = new XMLHttpRequest();
req.open('head', address, true);
req.onreadystatechange = responseHandler;
req.send(null);
};
var responseHandler = function(resp) {
if (this.readyState == 1)
this.abort();
size = this.getResponseHeader("Content-length");
};
的問題是,即使如果我一句
size = this.getResponseHeader("Content-length");
後檢查大小價值的價值是一個我希望,在主函數的值仍然爲0,當它到達的這部分驗證碼:
if (size > maxS)
// Do something
我試圖通過檢查,我在這個網站上發現了一些其他問題找出答案,我猜它有事情做與同步,但我真的不知道如何解決這個問題。
非常感謝!您的回答對我非常有幫助和啓發性,並且問題已解決。 對不起,但我不能投你的答案,因爲我沒有足夠的聲譽。 –
很高興你解決了你的問題!此外,您可能還無法投票,但您可以[勾選此答案旁邊的複選標記](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作/ 5235#5235)如果它幫助你。 –