2014-02-05 88 views
0

我在我的網站上有一個分析腳本,在1秒,5秒和1分鐘後觸發事件。我想用Phantomjs來測試這個,但是我不能讓它們執行。最初的JavaScript負載,但隨後的定時事件不會觸發。 分析腳本託管在分析提供程序域中,我只在我的頁面上引用它來收集分析數據。 它不工作,等待或window.setTimeout()Phantomjs和延遲javascript

有沒有人有任何想法如何做到這一點?

編輯:這是我的phantomjs代碼

var page = require('webpage').create(); 


var myArray = ['Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)']; 
page.settings.userAgent = myArray[Math.floor(Math.random() * myArray.length)]; 

page.viewportSize = { width: 1920, height: 1080 }; 

var url = 'myurl.com/mypage.html'; 

page.open(url, function() { 

    window.setTimeout(function(){ 
    page.render(''); 
    phantom.exit(); 
    },5000); 

}); 
+0

超時以虛線做工精細的分析代碼只解僱 - 你確定這不是分析腳本的一些支持問題? – jraede

+0

@jraede當我在firefox或chrome等broser中打開相同的頁面時,它工作正常! – lolcat

+0

「你確定這不是你的分析腳本的一些支持問題嗎?」也就是說,無論出於何種原因,它都不支持幻影 – jraede

回答

0

我找到了解決辦法,似乎如果瀏覽器有 document.hasFocus()返回true