通过Javascript显示HTML内容

时间:2012-06-06 11:36:34

标签: javascript html

我想知道,我如何使用Javascript显示HTML内容,据我所知并一直在搜索它是根本无法做到的。

但是我找到了一个javascript代码,当URL参数中有frame时,它会显示HTML内容(非原始内容)。

这是:

http://otslist.eu/ratingWidget.js - 您可以在这里找到原始的javascript代码。

http://otslist.eu/ratingWidget.js?frame=1 - 这里显示的是HTML。

怎么可能?怎么做那样的事?

3 个答案:

答案 0 :(得分:1)

您看到的JavaScript是服务器上的PHP脚本。使用一些浏览器/网络调试工具来检查HTTP响应:

HTTP/1.1 200 OK 
Server              nginx/0.7.67
Date                Wed, 06 Jun 2012 11:50:44 GMT
Content-Type        text/html
Connection          keep-alive
X-Powered-By        PHP/5.3.10
Expires             Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control       no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma              no-cache
Content-Encoding    gzip

并看到它是由PHP提供的。所以它是PHP脚本的输出而不是常规的JavaScript文档。

当省略frame=1时,PHP脚本输出JavScript。 当包含frame=1时,它会告诉PHP脚本将JavaScript嵌入到HTML页面中并提供它。

更新: PHP脚本可能如下所示:

<?php
$asHTML = $_GET['frame'] == 1;

if($asHTML) {
  // Generate HTTP headers for HTML, like
  header("Content-Type", "text/html");
} else {
  // Generate HTTP headers for the JavaScript, like
  header("Content-Type", "text/javascript");
}

if($asHTML) {
  // Generate HTML top document part
  echo "<html><head><title>Title</title></head><body><script type=\"text/javascript\">";
  // Other HTML header stuff here as well, see the live example (as I am too lazy to type it here)
}

// Read the JavaScript from a file that is available on the server
readfile("javascript.js");

if($asHTML) {
  // Close HTML tags
  echo "</script></body></html>";
}

请注意,我很快就将其打包在一起,因此可能充满了错误。但它应该给你一般的想法。

答案 1 :(得分:0)

如果你查看两个页面的源代码,你会发现它是不同的代码。带有frame参数的页面是HTML,另一个是JS。因此,服务器查找frame参数,如果存在则为HTML页面提供JS页面。

尝试

http://otslist.eu/ratingWidget.js?frames=1

此处frame参数不存在(是带有s的帧),因此它提供JS版本

并尝试

http://otslist.eu/ratingWidget.js?frame=1515

此处frame参数存在,即使该值为1515,因此它提供HTML版本

如果您使用Firefox的“实时HTTP标头”附加组件,您会看到服务器对第一个网址的响应为Content-Type: text/javascript,而第二个网址的响应为Content-Type: text/html

答案 2 :(得分:0)

我可能会想念你,但这似乎是非常基本的javscript。 innerHTML属性可用于操纵例如包含在内的内容。一个div。例如

document.getElementById("changeMyContent").innerHTML='<strong>New</strong> content';

看看http://www.w3schools.com/js/default.asp,他们举办了一个实例。