Pregunta

Tengo un archivo HTML (App) que lee otro archivo HTML (datos) a través de jQuery.ajax(). Se encuentra entonces etiquetas específicas en el archivo HTML de datos y utiliza el texto dentro de las etiquetas para mostrar tipo de información sobre herramientas.

Aquí está el archivo de la aplicación HTML:

<!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>Test</title>

<style type="text/css">
<!--/* <![CDATA[ */
body {
  font-family : sans-serif;
  font-size : medium;
  margin-bottom : 5em;
}
a, a:hover, a:visited {
  text-decoration : none;
  color : #2222aa;
}
a:hover {
  background-color : #eeeeee;
}
#stat_preview {
  position : absolute;
  background : #ccc;
  border : thin solid #aaa;
  padding : 3px;
  font-family : monospace;
  height : 2.5em;
}
/* ]]> */-->
</style>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
//<![CDATA[

$(document).ready(function() {
  $("#stat_preview").hide();

  $(".cfg_lnk").mouseover(function () {
    lnk = $(this);
    $.ajax({
      url: lnk.attr("href"),
      success: function (data) {
        console.log (data);
        $("#stat_preview").html("A heading<br>")
                          .append($(".tool_tip_text", $(data)).slice(0,3).text())
                          .css('left', (lnk.offset().left + lnk.width() + 30))
                          .css('top', (lnk.offset().top + (lnk.height()/2)))
                          .show();
      }
    });
  }).mouseout (function () {
    $("#stat_preview").hide();
  });
});

//]]>
</script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Test</h1>
<ul>
  <li><a class="cfg_lnk" href="data.html">Sample data</a></li>
</ul>
<div id="stat_preview"></div>
</body>
</html>

Y aquí es los datos HTML

<!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Test</h1>
  <table>
    <tr>
      <td class="tool_tip_text"> Some random value 1</td>
      <td class="tool_tip_text"> Some random value 2</td>
      <td class="tool_tip_text"> Some random value 3</td>
      <td class="tool_tip_text"> Some random value 4</td>
      <td class="tool_tip_text"> Some random value 5</td>
    </tr>
    <tr>
      <td class="tool_top_text"> Some random value 11</td>
      <td class="tool_top_text"> Some random value 21</td>
      <td class="tool_top_text"> Some random value 31</td>
      <td class="tool_top_text"> Some random value 41</td>
      <td class="tool_top_text"> Some random value 51</td>
    </tr>
  </table>
</body>
</html>

Esto funciona según lo previsto en Firefox, pero no en cromo (cromo 5.0.356.0).

El console.log (data) pantallas cadena vacía en la consola JavaScript de cromo. Firebug en Firefox, sin embargo, muestra todo el HTML de datos.

Me estoy perdiendo algo? Cualquier punteros?

¿Fue útil?

Solución

No está seguro de la respuesta, pero unas pocas vías de investigación que podía pensar en:

  1. ¿Es un objeto de datos (en lugar de una cadena?) Tal vez la consola de cromo no sabe cómo mostrarlo. Usted podría intentar un método de exportación alternativa para probarlo, o ver si el suministro de la configuración de 'tipo de datos' hace ninguna diferencia.
  2. ¿Es la devolución de llamada de éxito que se llama en absoluto en cromo? Podría ser un error, o alguna característica de seguridad del navegador (como la protección-cross-site scripting, o tener activado javascript) que está bloqueando la misma.
  3. Experimento con una versión estática del HTML / CSS el código se supone que produce, y asegúrese de que se muestra correctamente en ambos navegadores.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top