Оценка фантомов не показывает изменения в DOM

Это мой HTML-файл:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta http-equiv="Content-Script-Type" content="text/javascript"/>
</head>
<body>
    <label for=payload>Payload</label><br>
    <textarea id="editor" cols=100 rows=30></textarea><br> 
</body>

И скрипт phantomjs:

var bodyParser = require('body-parser'),
phantom = require('phantom');

var bk = {"abc":"def"};
//Create Phantom session
var _phSession;
var _page;
var log = console.log;
var config = { logger: { warn:log, info:log, error:log } };
phantom.create([], config).then(function(_session) {
  if (_session) {
    console.log('Phantom session created');
    _phSession = _session;
    return _phSession.createPage();
  }
})
.then(function(page) {
  _page = page;
  _page.property('onConsoleMessage', function(msg) {
    console.log(msg);
  });
  _page.property('onLoadStarted', function() {
    console.log("load started");
  });
  _page.property('onLoadFinished', function() {
    console.log("load finished");
  });
  return _page.open("http://myserver/my.html");
})
.then(function(status) {
  console.log('Open status:' + status);
  if (status != 'success') return;
   _page.includeJs('https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js')
.then(function() {
  //set the new bkstore 
  _page.evaluate(function(bk) {
    jQuery('#editor').val(JSON.stringify(bk));
    return jQuery('#editor').val();
  }, bkstore)
  .then(function(res) {
    console.log('Return from set:' + res);
  })
});

setTimeout(function() {
  _page.evaluate(function() {
    console.log('============== EVALUATE AFTER LOADED ===================');
    //return jQuery('#editor').val();
    return jQuery('body').html(); 
  })
  .then(function(res) {
    console.log('html:' + res);
  });
}, 1000);

После того, как я установил содержимое #editor с помощью bk, я вернул значение, которое я установил. В блоке setTimeout, если я снова пытаюсь получить содержимое #editor, я все равно возвращаю значение bk. Но я получаю html тега body, я не вижу значения bk в #editor.

Кто-нибудь знает в чем проблема?

0 ответов

Другие вопросы по тегам