2012-09-13 36 views
1

我一直在寻找这个答案,似乎无法找出如何去做......或者如果可能的话。在页面渲染之前更改HTML数据

我有一个显示.HTML页面的JavaScript程序。我有另一家向我们发送信息的公司提供的API。我希望能够在用户看到之前更改.HTML页面的内容。这可能吗?

例如,假设page.html中是:

<HTML> 
<HEADER> 
<TITLE> 
The Company Name 
</TITLE> 
</HEADER> 
<BODY> 
Some stuff 
</BODY> 
</<HTML> 

page.html中容纳我们的服务器和使用JavaScript/HTML我想从价值变化“公司名称”的值上将页面呈现给用户之前的API。这可能吗?

+0

您使用哪种服务器端脚本语言? – tnanoba

+1

由于标题在页面甚至可以完全下载之前就已经显示出来了,所以没有好的客户端方法可以可靠地工作。 –

回答

0

简单的JavaScript函数将这样的伎俩:

window.onload = function() { document.getElementByTagNames("title")[0].value = "Yourvalue"; } 
+0

我可以使用这种技术来替换整个文档整个HTML页面,如:“ ...整个文档...”如果我有这个变量?我会怎么做? –

+0

我不确定你可以替换整个HTML。但是,您可以连续更改每个标记的所有内容,例如'script','body'等。应该这样做。例如,如果将整个'body'封装在另一个'div'中,那么可以使用''wrapper **'',你可以说'document.body.removeChild('document.getElementById('wrapper'))''。 – SexyBeast

0

window.onload如果你想确保你的用户不看网页版之前,作为onload等待一切不会做的伎俩被加载,包括图像。

我建议是:

  • 更改标题的挡在了脑袋:<script>document.title="test"</script>
  • 最初隐藏的页面,通过在<div id=wholepage style="display:none;">
  • 围绕它来改变网页内容在标准<script>块包含在你的身体结束
  • 呈现在你结束的div大可见,用document.getElementById('wholepage').style.display='block';
0

您可以将页面中的HTML加载到字符串变量中。然后你可以在字符串上使用正则表达式并搜索起始表达式和结束表达式,并对该内容进行替换。 Javascript有一个替换方法。

var str="<HTML><HEADER><TITLE>The Company Name</TITLE></HEADER><BODY>Some stuff</BODY></<HTML>"; 
str=str.replace("<TITLE>","<DUMMY>"); 
str=str.replace("</TITLE>","</DUMMY><TITLE>your real title</TITLE>"); 

基本上你将标题标签重命名为虚像一个不存在的标签,那么真正的标题标签附加到它的结束。

然后,您可以在运行时在页面中的字符串/变量中显示HTML内容。

+0

如何将HTML从服务器上的页面加载到字符串变量中?我似乎无法找到这样的命令? –