使用本机JavaScript动态更改HTML源代码?

时间:2011-09-27 11:27:58

标签: javascript html greasemonkey

我试图更改我的HTML文件。请参阅this以更好地了解我的目标。

每件事情都很好但是当我查看来源时它并没有改变。我试图做出的更改只反映在我在浏览器上打开的网页上。

是否可以通过任何方式更改HTML网页的实际来源?

我正在使用IE8和GreaseMonkey4IE在我想操作的网页上运行我的JavaScript,以防您感兴趣。

有一个类似的问题here。但是我的HTML文件存放在我的本地存储中。没有服务器端 - 客户端技术细节。

编辑1

我确实设置了Tomcat,但它全部都在我的本地机器上 另外,如果我可以修改DOM,我不能将其保存为新的HTML文件,这样我就不必弄乱原始源文件了。

我们就是这样做的in firefox。在IE8中必须有一些方法可以做到这一点。

编辑2
现在对于没有任何框架的HTML页面工作正常。但是,当我在带有框架的页面上尝试这个时,它不起作用。我肯定会杀了我。 也许这是因为框架访问其他HTML页面。例如:

<frameset rows="95,*" frameborder="NO" framespacing="0" border="0" marginwidth="0"  marginheight="0">
    <frame name="title" target="content" src="Strategy%20Details.asp_files/title.htm"  scrolling="NO">
 <frameset cols="168,*">
   <frame name="navigation" noresize="noresize" width="168" target="content" src="Strategy%20Details.asp_files/navigation.htm">
   <frame name="content" noresize="noresize" src="Strategy%20Details.asp_files/home.htm">
 </frameset>
 </frameset> 



了解框架如何访问 src 属性中的HTML页面。

任何想法???

5 个答案:

答案 0 :(得分:3)

您应该能够使用IE Developer Tools查看动态更改。

当您“查看来源”时,该页面会显示从服务器发送的来源,之后不做任何更改。 IE开发者工具(或Firefox中的Firebug,或Opera中的Dragonfly)可以让您动态地看到变化(并且还会突出显示变化!)

答案 1 :(得分:1)

如果我理解正确,您想要更改硬盘上HTML文件的内容?使用JS是不可能的,无论HTML文件在哪里(本地机器与否),总会有服务器端和客户端。基本上,您的操作系统充当服务器(为您提供HTML),而您的浏览器仍然只是一个客户端,没有比您在网页上的权限更多的权利。

听起来你应该研究一些允许动态网页的服务器技术,例如PHP,JSP,服务器端JS或其他任何一个。

答案 2 :(得分:1)

因此,通过查看您使用Firefox进行的操作,您不希望javsctipt进行保存,只需使用脚本修改DOM即可保存IE中更改的HTML表示。

在IE中,使用IE开发人员工具。按f12。如果您操作了DOM,请单击开发人员工具中的刷新图标。然后单击保存图标。

答案 3 :(得分:0)

编辑:没有办法,至少没有没有萤火虫检查来源。

答案 4 :(得分:0)

这是不可能的。我认为这取决于浏览器,但是当您请求页面源时,它们通常会再次执行请求,或者使用原始源的缓存结果(显然在客户端操作之前,这只存在并且在中有意义 浏览器中页面的视图,因此您可以获得源代码中的内容(在本例中是本地存储中的HTML文件)。