Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于innerHTML的几个问题_Javascript_Iframe_Innerhtml_Window.open_Document.write - Fatal编程技术网

Javascript 关于innerHTML的几个问题

Javascript 关于innerHTML的几个问题,javascript,iframe,innerhtml,window.open,document.write,Javascript,Iframe,Innerhtml,Window.open,Document.write,我正在转换一个在巴西创建的老程序员的笑话程序,它类似于但使用的是艺术术语,而不是businnes的胡言乱语 由于程序太旧(geocities年代太旧),它使用了大量document.write,而不是InnerHtml 第一个问题是,在innerHTMLs中放置大量代码是否安全?由于原始程序加载4组数组,其中包含可以组合成伪文章的每一段文本,因此这是一段代码: new_window.document.write("<body bgcolor=\"#000000\">"); new_w

我正在转换一个在巴西创建的老程序员的笑话程序,它类似于但使用的是艺术术语,而不是businnes的胡言乱语

由于程序太旧(geocities年代太旧),它使用了大量document.write,而不是InnerHtml

第一个问题是,在innerHTMLs中放置大量代码是否安全?由于原始程序加载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)
.....
... 
new\u window.document.write(“”);
新建窗口。文档。写入(“”)
新建窗口。文档。写入(“

“+atitle+”


”); firstshot=1; 段落=0; 而(行数>0){ if(firstshot==1){ 如果(第%101行==0和第%19行==0){ 新建_window.document.write(tab0.chr(1,0)+tab0.chr(0,1)+tab3.chr(0,0) ..... ...
这在一英寸长的非嵌套代码块中继续,整个代码都在这里

我正在试验,这就是我目前得到的结果:

<body>
    <div id="target"></div>
    <div id = "myDiv"></div>
    <span id = "mySpan"></span>
    <br>

    <button id="restore">restore</button>
    <p>&nbsp;</p>
    <form name="form1" method="post" action="">
        <input type="submit" name="remove" id="remove" value="remove">
    </form>
    <p>&nbsp;</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;
    });


恢复

var消息= “
  • ”+ “
  • ”+ “
  • ”+ “
  • ”+ “
  • ”+ “
  • ” var message2= ''+ ''+ “您的浏览器不支持iFrame。

    ”+ '' document.getElementById(“myDiv”).innerHTML=message;//将innerHTML用于块和内联HTML元素 document.getElementById(“删除”).addEventListener(“单击”),函数() { document.getElementById(“myDiv”).innerHTML=message2; }); document.getElementById(“还原”).addEventListener(“单击”),函数() { document.getElementById(“myDiv”).innerHTML=消息; });
    它可以像预期的那样工作,只需按一下按钮,就可以加载一些html内容,然后用iframe替换这些内容

    iframe是解决这一问题的最佳解决方案吗?还是用js替换整个html是一条出路

    var消息= “somecode”+ “somecode”+

    到目前为止看起来还是安全的,但就我开始转换而言,我会头疼吗?或者这种方法看起来很简单

    我应该使用window.onload而不是替换内容持有者div吗?

    我的两分钱

    在innerHTMLs中放置大量代码是否安全

    安全,是的…易于维护,不是。前端代码是为客户端编写的,因此如果他们选择自己进行黑客攻击,就让他们自己进行黑客攻击……当然,发送回服务器的任何内容都应该经过清理,不可信,但这是一个完全不同的问题

    在我看来,最大的问题是可维护性

    接下来,在JS中,将其重构为一个单独的文件,开始缓存变量,使代码更易于查看

    最后,您需要iFrame吗?还是需要一个新窗口?您不能简单地将“艺术术语”附加到当前html的底部吗?这样就省去了iFrame的麻烦


    我是非jQuery的完全拥护者,但对您来说,使用jQuery的HTML编辑API可能是一个好主意。可以帮助将一些问题抽象为更可读和可维护的形式。再说一次,vanilla JS真的很棒,如果可以这样做,这是一个很好的学习方式。

    我不会说它不安全,但它确实很糟糕确实是这样……为什么需要使用JS构建视图,为什么不使用HTML?(
    --headeaches;
    )抱歉,你用html构建视图是什么意思?我觉得我有点困惑,你能说得更具体一点吗?给我提示,我来做作业。你用JS编写html,这不是最常见的。通常所有的html代码都在一个.html文件中。正如Sten在他的文章中所写的,这是不可维护的!Gr吃吧!千万不要这样做,我想知道人们是如何管理两个iFrame的内容的。将内容放在不同的文件中似乎是最好的方式,谢谢你的洞察力。