2012-04-16 19 views
5

ile sorunlara neden oluyor Amazon.com alanında herhangi bir sayfa açıyorum (örneğin "http://www.amazon.com") ve JQuery gibi Bu:PhantomJS kullanarak JQuery'nin Amazon.com sayfalarına enjekte edilmesi JQuery

var injected = page.injectJs('jquery-1.7.1.js'); 
console.log("jquery was injected successfully: " + injected); 

Bu kod konsoluna true yazdırır. Ancak, bu gibi page.evaluate() içinden $(document) erişmeye çalışan:

page.onLoadFinished = function (status) { 
    var results = page.evaluate(function() { 
     $(document);  
    }); 

phantom.exit(); 
}; 

konsoluna TypeError: 'undefined' is not a function yazdırılır.

Bu kod, denediğim diğer etki alanlarının çoğunda çalışır. Amazon'un yüklediği JQuery'nin kendi sürümüne sahip olduğunu ve bir şekilde yüklediğim JQuery sürümüyle çelişiyor olabileceğini merak ettim. Herhangi bir fikir?

+0

Lütfen javascript gibi soruları da (bir daha ki sefere) etiketleyin. –

+0

Takma ad kullanmadığınızda ne olur? Örneğin jQuery (belge). – Tejs

+0

Çalışır (teşekkürler!). Ama nedenini anlamıyorum. Kimse biliyor mu? – grumblebeans

cevap

3

Sadece şöyle alternatif değişken adıyla noConflict modunda jQuery koymak gerekir:

var results = page.evaluate(function() { 
    $jq = window.jQuery; 
    $jq.noConflict(); 

    console.log("Title: " + $jq('title').text()); 
}); 

benim için çalıştı! Umarım senin için çalışır! :)

+0

oh, evet, işe yarıyor! –

İlgili konular