我正在转换一个在巴西创建的老程序员的笑话程序,类似于MIT's SCIgen,但使用艺术行话代替businnes乱码。由于该程序太旧(geocities时代老),当然它使用大量的document.write而不是innerHTHML。关于innerHTML的一些问题
第一个问题是,像innerTMLs内的吨代码放置是否安全?由于原来的程序加载4台与每一个可能的片,可以被组合以形成一个伪文章文本的阵列,这是一块代码:
new_window.document.write("<body bgcolor=\"#000000\">");
new_window.document.write("<body text=\"#00FF00\">")
new_window.document.write("<p align=\"center\"><b>"+atitle+"</b><hr></p>");
firstshot = 1;
paragraph = 0;
while(lines > 0) {
if (firstshot == 1) {
if (lines % 101 == 0 && lines % 19 == 0) {
new_window.document.write(tab0.chr(1,0)+tab0.chr(0,1)+tab3.chr(0,0)
.....
...
此继续以英寸长的非嵌套的块代码,整个代码是在这里http://jsfiddle.net/jmqdx09g/
我尝试,这是我得到迄今:
<body>
<div id="target"></div>
<div id = "myDiv"></div>
<span id = "mySpan"></span>
<br>
<button id="restore">restore</button>
<p> </p>
<form name="form1" method="post" action="">
<input type="submit" name="remove" id="remove" value="remove">
</form>
<p> </p>
</body>
<script type = "text/javascript">
var message =
'<li><a href="../index.html">Home</a></li>'+
'<li><a href="../about">About</a></li>'+
'<li><a href="../contact/index.html">Contact</a></li>'+
'<li><a href="../works/index.html">Works</a></li>'+
' <li><a href="../projects/index.html">Projects</a></li>'+
'<li><a href="../curriculum/index.html">Curriculum</a></li>'
var message2 =
'<div class="content">'+
'<iframe src="/yourpage.html" frameborder="0" width="600" height="650" scrolling="no">'+
'<p>Your browser does not support iframes.</p>'+
'</iframe></div>'
document.getElementById("myDiv").innerHTML = message; // use innerHTML for block and inline HTML elements
document.getElementById("remove").addEventListener("click", function()
{
document.getElementById("myDiv").innerHTML = message2;
});
document.getElementById("restore").addEventListener("click", function()
{
document.getElementById("myDiv").innerHTML = message;
});
,它按预期工作是加载一些HTML的东西,在一个新闻按钮的东西被替换为iframe
是iframe的最佳解决方案,或用js替换整个html是要走的路吗?
的 VAR消息= “somecode” + “somecode” +
看起来安全到现在为止,但据我进入了转换,我该怎么有头痛或这种方法是直线前进因为它看起来像?
我应该使用window.onload而不是替换内容持有者div吗?
我不会说这是不安全的,但它确实是一种非常糟糕的方式......为什么您需要使用JS来构建视图,为什么不使用HTML呢? ('--headeaches;') – Vadorequest 2014-10-31 07:01:49
对不起,您使用html构建视图意味着什么?我想我是,现在我有点混乱,你能更具体一点吗?给我提示,我会做功课。 – Fernando 2014-10-31 07:25:38
那么你使用JS编写HTML,这不是最常见的。通常所有的html代码都在.html文件中。正如Sten在他的文章中写道的那样,这不是一个好主意! – Vadorequest 2014-10-31 08:13:32