2016-08-26 21 views
-1

我是JavaScript和PhantomJS的新手。我試圖存儲來自網頁的鏈接,然後修改。問題是我無法在page.evaluate之後修改我的數組。Phantomjs改變頁面內的對象屬性評估

var player = 0; 
var links = page.evaluate(function() { 
    var a = document.querySelectorAll(".link[rel='nofollow']:not(#bg)"); 
    for(var i =0; i < a.length; i++) { 
     array.push({ 
      "html":a[i].innerHTML, 
      "link":a[i].href 
     } 
     ); 
    } 
    return array; 
}); 

//Not setting 1 as a value 
links[player]["link"] = 1; 

我認爲這是發生在執行功能,因爲我已經設置播放器的值,但沒有辦法,我可以修改這個值呢?

+0

'player [player]'?你可能打算使用'鏈接[player]' –

+0

剛剛編輯過,我昨天寫錯了 –

+0

有沒有人知道我該如何解決它? –

回答

0

您當前的代碼會將參考副本的副本替換爲您想要更改的實際數據。當然,這是行不通的。

如果要更改頁面上的屬性/內容,那麼你需要訪問該網頁,並改變它:

var player = 0; 
page.evaluate(function(player) { 
    var a = document.querySelectorAll(".link[rel='nofollow']:not(#bg)"); 
    a[player].href = "1"; 
}, player); 

我不認爲「1」是爲一個適當的值href值,但它看起來就是你想要做的。