mirror of https://github.com/vitalif/phantomjs
Converted "tweets.js" to PhantomJS 1.2.
First impression: PhantomJS 1.2 makes a lot of sense. But there are issues if we try to pass a DOM node as a return value for calls to "evaluate"1.2
parent
a012559d7b
commit
b91f5b9632
|
@ -1,12 +1,36 @@
|
|||
// Get twitter status from someone
|
||||
// Get twitter status for given account (or for the default one, "sencha")
|
||||
|
||||
if (phantom.state.length === 0) {
|
||||
phantom.state = 'tweets';
|
||||
phantom.open('http://mobile.twitter.com/sencha');
|
||||
var page = new WebPage(),
|
||||
twitterId = "sencha"; //< default value
|
||||
|
||||
// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this")
|
||||
page.onConsoleMessage = function(msg) {
|
||||
console.log(msg);
|
||||
};
|
||||
|
||||
// Print usage message, if no twitter ID is passed
|
||||
if (phantom.args.length < 1) {
|
||||
console.log("Usage: tweets.js [twitter ID]");
|
||||
} else {
|
||||
var list = document.querySelectorAll('span.status');
|
||||
for (var i = 0; i < list.length; ++i) {
|
||||
console.log((i + 1) + ': ' + list[i].innerHTML.replace(/<.*?>/g, ''));
|
||||
twitterId = phantom.args[0];
|
||||
}
|
||||
|
||||
// Heading
|
||||
console.log("*** Latest tweets from @" + twitterId + " ***\n");
|
||||
|
||||
// Open Twitter Mobile and, onPageLoad, do...
|
||||
page.open(encodeURI("http://mobile.twitter.com/" + twitterId), function (status) {
|
||||
// Check for page load success
|
||||
if (status !== "success") {
|
||||
console.log("Unable to access network");
|
||||
} else {
|
||||
// Execute some DOM inspection within the page context
|
||||
page.evaluate(function() {
|
||||
var list = document.querySelectorAll('span.status');
|
||||
for (var i = 0; i < list.length; ++i) {
|
||||
console.log((i + 1) + ": " + list[i].innerHTML.replace(/<.*?>/g, ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
phantom.exit();
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue