在页面渲染之前更改HTML数据

时间:2012-09-13 16:37:55

标签: javascript

我一直在寻找答案,似乎无法找到如何做到这一点......或者是否有可能。

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

例如,假设page.html为:

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

page.html位于我们的服务器上并使用JavaScript / HTML我想在将页面呈现给用户之前使用API​​中的值更改“公司名称”的值。这可能吗?

3 个答案:

答案 0 :(得分:2)

如果您希望确保您的用户在编辑之前没有看到该页面,那么

window.onload将无法解决问题,因为onload等待加载所有内容,包括图像。

我建议的是:

  • 更改标题栏中的标题:<script>document.title="test"</script>
  • 首先隐藏页面,将其封在<div id=wholepage style="display:none;">
  • 更改身体末端所包含的标准<script>区块中的网页内容
  • 使用document.getElementById('wholepage').style.display='block';
  • 在结尾渲染您的大div

答案 1 :(得分:0)

一个简单的Javascript函数可以解决这个问题:

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

答案 2 :(得分: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>"); 

基本上你会将title标签重命名为一个不存在的标签,比如dummy,然后将真正的标题标签附加到它的末尾。

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