Problema con phantomjs

pedro91

Hola,

Tengo un error con phantomjs, simplemente al leer la página, como en la página tengo "<body onload='loadData()'>", me dice "Can't find variable: loadData y me señala la línea del body onload como error.

loadData() es una función que obtiene los datos, por lo que no pueda sustituirla.

Código de la página no modificable:

<html>
<head>
<title>Headless remote debugging</title>
<style>
</style>
<script>
const fetchjson = (url) => fetch(url).then(r => r.json());
function loadData() {
  const getList = fetchjson("/json/list");
  const getVersion = fetchjson('/json/version');
  Promise.all([getList, getVersion]).then(parseResults);
}

function parseResults([listData, versionData]){
    const version = versionData['WebKit-Version'];
    const hash = version.match(/\s\(@(\b[0-9a-f]{5,40}\b)/)[1];
    listData.forEach(item => appendItem(item, hash));
}

function appendItem(item, hash) {
  let link;
  if (item.devtoolsFrontendUrl) {
    link = document.createElement("a");
    var devtoolsFrontendUrl = item.devtoolsFrontendUrl.replace(/^\/devtools\//,'');
    link.href = `https://chrome-devtools-frontend.appspot.com/serve_file/@${hash}/${devtoolsFrontendUrl}&remoteFrontend=true`;
    link.title = item.title;
  } else {
    link = document.createElement("div");
    link.title = "The tab already has active debugging session";
  }

  var text = document.createElement("div");
  if (item.title)
    text.textContent = item.title;
  else
    text.textContent = "(untitled tab)";
  if (item.faviconUrl)
    text.style.cssText = "background-image:url(" + item.faviconUrl + ")";
  link.appendChild(text);

  var p = document.createElement("p");
  p.appendChild(link);

  document.getElementById("items").appendChild(p);
}
</script>
</head>
<body onload='loadData()'>
  <div id='caption'>Inspectable WebContents</div>
  <div id='items'></div>
</body>
</html>

Gracias

beltez

Has probado a poner los scripts al final en vez de dentro de la etiqueta <head> ? Es decir, antes del cierre de </body> ?

pedro91

Muchas gracias por tu pronta respuesta, la página WEB está en otros servidores y no es posible modificarla, solamente puedo modificar el script de acceso con phantomjs.

Se te ocurre alguna otra cosa?

B

Usuarios habituales