通过Javascript显示HTML内容

通过Javascript显示HTML内容,javascript,html,Javascript,Html,我想知道,如何使用Javascript显示HTML内容,据我所知和搜索,这根本不可能做到 但是我发现了一个javascript代码,当URL参数中有frame时,它会显示HTML内容(而不是原始内容) 这是: -在这里您可以找到原始javascript代码 -这里显示的是HTML 这怎么可能?如何做到这一点?如果您查看这两个页面的源代码,就会发现它是不同的代码。带有frame参数的页面是HTML,另一个是JS。因此,服务器查找frame参数,如果存在,则为HTML页面提供服务,否则为JS页面提供

我想知道,如何使用Javascript显示HTML内容,据我所知和搜索,这根本不可能做到

但是我发现了一个javascript代码,当URL参数中有
frame
时,它会显示HTML内容(而不是原始内容)

这是:

-在这里您可以找到原始javascript代码

-这里显示的是HTML


这怎么可能?如何做到这一点?

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

试一试

这里的
frame
参数不存在(是带有s的帧),因此它为JS版本服务

试一试

http://otslist.eu/ratingWidget.js?frame=1515
此处即使值为1515,
frame
参数也存在,因此它提供HTML版本


此外,如果您使用Firefox的“Live HTTP headers”插件,您将看到服务器对第一个url的响应是
内容类型:text/javascript
,对第二个url的响应是
内容类型:text/html

您看到的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>";
}

我可能想不明白你的意思,但这似乎是一个非常基本的脚本。innerHTML属性可用于操作div中包含的内容,例如

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

看一看,它们承载了一个实例。

了解更多javascript…不可能使用javascript显示HTML吗?JavaScript的主要用途之一是操作DOM,即显示HTML。从JavaScript和DOM操作的基本指南开始。该代码使用jQuery来操作DOM,但您可以使用简单的JavaScript来操作。仔细阅读,您将能够自己理解该代码。您可能希望改进您的问题,因为您的实际问题似乎类似于“我在URL中看到了一个*.js扩展,但当我向URL添加
frame=1
时,页面显示为HTML页面。这怎么可能?”我了解所有内容,但我只是想看看代码本身,它是如何工作的(js扩展文件被视为PHP文件)…好的,因为这并不太复杂,我快速键入了一些示例代码来说明如何实现。谢谢,但是我在问题中发布的脚本,怎么会有
.js
扩展名?您提供的代码将不会在.js扩展文件中执行。在这种情况下,他们可能正在使用mod rewrite?脚本扩展实际上并不重要。只要服务器使用PHP解析它。那么我如何使用PHP解析js扩展?我了解所有内容,但我只想看看代码本身,它是如何工作的(js扩展文件被视为PHP文件)…我了解所有内容,但我只想看看代码本身,它是如何工作的(该js扩展文件被视为PHP文件)…您需要在otslist.eu上进行ftp访问才能查看源代码
document.getElementById("changeMyContent").innerHTML='<strong>New</strong> content';