2014-01-06 9 views
1

我的問題主要是,我想點擊一個<div>是隻3秒鐘內會出現一個<button> ... 的<div>display:none,所以我可以讓它出現,每當我想要的,但會產生<button>由我無法訪問的其他js文件。我無法更改原始的js文件(例如給我更多時間),因爲我只使用腳本與頁面交互! (不是我自己的頁面)如何'獲取'一個元素只能通過javascript生成3秒?

我試過目前爲止定位在js代碼裏面的id或生成的按鈕的類,但是js被縮小了...所以沒有運氣... 我也嘗試過使用臨時在那3秒鐘內爲那個按鈕生成的類,然後點擊它...通過手動輸入類的截圖,然後在控制檯中運行一段代碼,在3秒鐘內點擊它...並且沒有運氣。 ..

現在我認爲這個問題是我的做法的情況,所以我在這裏沒有寫任何代碼... 請給我你的想法這個...

+2

請扔下一個codepen,或的jsfiddle或代碼的東西,我們可以用它來幫助你解決問題! – Cam

回答

0

要把你的按鈕detecti在setInterval將觸發往往不夠,它會火,而按鈕存在內部代碼:

// note: this is just pseudocode 
var interval = setInterval(function() { 
    // look for button 
    if(buttonFound) { 
     clickButton(); 
     clearInterval(interval); 
    } 
}, 300); 
1

您可以添加MutationObserver如果你想(在你的情況父元素)的變化作出反應,DOM。

沒有任何代碼很難提供更好的答案。

jsFiddle

(function() { 
    "use strict"; 
    var target = document.getElementById("hiddenElement"), 
     observer = new MutationObserver(function(mutations) { 
      mutations.forEach(function(value, index, array) { 
       console.log(value.type); 
       console.dir(value.addedNodes); // return node list 
       console.dir(value.removedNodes); 
       // put here your logic 
      }); 
     }); 

    observer.observe(target, { 
     childList: true, 
     subtree: true, 
     characterData: true, 
     characterDataOldValue: true 
    });  
}()); 

(function() { 
    "use strict"; 


    var newEle = document.createElement("input"), 
     hiddenElement = document.getElementById("hiddenElement"); 

    newEle.type = "button"; 
    newEle.value = "click"; 
    newEle.addEventListener("click", function(e) { 
     alert("Generated only for 3 second"); 
    }); 

    hiddenElement.appendChild(newEle); 
    hiddenElement.style.display = "block"; 

    setTimeout(function() { 
     hiddenElement.style.display = "none"; 
     hiddenElement.removeChild(newEle); 
    }, 3000);  
}()); 
+0

+1我從來不知道這樣的事情存在。與往常一樣,IE支持不如恆星http://caniuse.com/mutationobserver –

+1

@WalterStabosz您可以使用[突變事件](http://msdn.microsoft.com/en-us/library/ie/ff974346(v = vs.85).aspx)如果你想支持** IE 9 **或** IE 10 **,但不推薦使用[Mutation Observer](http://msdn.microsoft.com/en-us /vlibrary/ie/dn254985(v=vs.85).aspx)在DOM4中。 – Givi

相關問題