解決方案:
我做了修改,並添加警報,通知我,當網頁被調整/加載,他們的確調整/負載。由於某些原因,使用c函數時,它不會觸發添加到.callbacks數組中的自定義函數。我決定只使用另一個確實可行的代碼。
而不是返回c(.callbacks);我改爲:
for(each in win_resize.callbacks) {
win_resize.callbacks[each]();
}
這似乎是做伎倆,現在它工作得很好。 至於jsHint的事情......這似乎有點奇怪,「警報」沒有定義,並且當評估變量是否等於一個字符串時處理...一個「字符串」,使用==將工作得很好。我從來沒有遇到過一個沒有按照我預期的方式工作的問題。
我不需要任何幫助,現在可以關閉它。 感謝所有幫助過我們的人,或者嘗試提供幫助。
============================================== =============
原始的問題
在window.onload和Window.onresize不會觸發。 我不確定這裏發生了什麼,因爲我以前做過這麼多次。
如果出現某種錯誤,解決起來會非常容易,但就我在開發控制檯中可以看到的情況而言,沒有錯誤。
這是我的代碼:
var each, win_resizing, win_loaded = false;
function c(r, a1, a2, a3, a4, a5, a6, a7) {
if (typeof r == 'object') {
for(each in r) {
each[r] = c(each[r], a1, a2, a3, a4, a5, a6, a7);
}
return r;
} else if (typeof r == 'function') {
return each[r](a1, a2, a3, a4, a5, a6, a7);
}
return r;
}
win_load.callbacks = [];
function win_load(call) {
if (typeof call == 'function') {
return win_load.callbacks.push(call)-1;
}
return c(win_load.callbacks);
}
win_resize.callbacks = [];
function win_resize(call) {
if (typeof call == 'function') {
return win_resize.callbacks.push(call)-1;
}
return c(win_resize.callbacks);
}
win_load(function() {
alert("Loaded?");
});
win_resize(function() {
alert("Resized?");
});
window.onresize = function() {
if (!win_resizing) {
win_resizing = setTimeout(function() {
delete win_resizing;
}, 50);
win_resize();
}
};
window.onload = function() {
if (win_loaded!==true) {
win_loaded = true;
win_load();
window.onresize();
}
};
我重複我做了確切的代碼,並把它放在一個jsFiddle。
我不認爲'窗口調整大小'將在jsFiddle上工作,因爲每個部分都在它自己的iframe中。 – DevlshOne
是的,我意識到這一點。這就是爲什麼有源代碼;但在我的任何瀏覽器期間它都不適用於我。這是問題。如果jsFiddle沒有處理iframe的onresize事件,我無所謂。 – Will
第一個建議...去除除onload和resize兩個監聽器以外的所有代碼。看看警報是否有效。 – DevlshOne