Ich öffne jede Seite in der Amazon.com-Domäne (zum Beispiel "http://www.amazon.com") und versuche dann, JQuery wie zu injizieren dies:Das Einfügen von JQuery in Amazon.com-Seiten mit PhantomJS verursacht Probleme mit JQuery
var injected = page.injectJs('jquery-1.7.1.js');
console.log("jquery was injected successfully: " + injected);
Dieser Code wird true
an die Konsole drucken. Allerdings versucht $(document)
zuzugreifen aus page.evaluate()
wie folgt aus:
page.onLoadFinished = function (status) {
var results = page.evaluate(function() {
$(document);
});
phantom.exit();
};
TypeError: 'undefined' is not a function
auf der Konsole gedruckt wird.
Dieser Code funktioniert mit den meisten anderen Domänen, mit denen ich versucht habe. Ich habe bemerkt, dass Amazon eine eigene Version von JQuery zu haben scheint, die geladen wird, und ich frage mich, ob es möglicherweise einen Konflikt mit der JQuery-Version gibt, die ich irgendwie lade. Irgendwelche Ideen?
Bitte markieren Sie Fragen wie dieses auch als Javascript (nächstes Mal). –
Was passiert, wenn Sie den Nicht-Alias verwenden? 'jQuery (Dokument)' zum Beispiel. – Tejs
Es funktioniert (danke!). Aber ich verstehe nicht warum. Weiß jemand? – grumblebeans