您可以設置一個全局標誌(選擇不與任何其他名稱衝突適當的名稱):
if (window.frames['myframe'] && !window.userSet){
window.userSet = true;
frames['myframe'].location.href='http://test.com/hello?uname='+getUserName();
}
另外,您可以設置自定義屬性的元素:
var userSet = this.getAttribute('data-userset');
if (window.frames['myframe'] && !userSet){
this.setAttribute('data-userset', 'true');
frames['myframe'].location.href='http://test.com/hello?uname='+getUserName();
}
或者,如果您以後不必再調用事件處理程序,則可以將其刪除:
if (window.frames['myframe']){
this.onload = null;
this.setAttribute('onload', '');
frames['myframe'].location.href='http://test.com/hello?uname='+getUserName();
}
順便說一句。你有什麼if
聲明?無論如何,我認爲它永遠是true
。
糟糕。試圖設置一個條件,忘記編寫代碼之前發佈在這裏。 – heylo
@heylo:我看到:)在事件處理程序中,您可以使用'this'來引用處理程序綁定的元素。 –
是的,會做:)還,謝謝你的答案:)) – heylo