Document.writeln在一个新框架中而不是window.open

时间:2013-11-14 17:01:43

标签: javascript html

如何在同一窗口中的帧上写新行?现在我让它用window.open创建一个新窗口。但现在我需要它在框架中。

我有一个带有两个框架的html(形式和结果),我需要通过按第一帧上的按钮来写入第二个框架。

HTML

<html>
    <head>
    <title> Create Curriculum</title>
    <meta charset="UTF-8"/>
    </head>
    <frameset rows="50%,50%">
        <frame id="form" src="from.html"/>
        <frame id="curri" src=""/>
    </frameset>

您将表格添加信息添加到输入并保存信息。还有一个按钮,使用下面输入的信息生成课程表。

JAVASCRIPT:

function genCurriculum() {
    //I want to capture the second frame with id "curri"
    var curri = parent.document.getElementById("curri");
    curri.document.writeln("<h2>Head of the curriculum...</h2>");
    //The others writeln for creating the curriculum
}

我想知道如何在框架中书写,而不是在新窗口中书写。

不使用Jquery,只使用纯JavaScript。 (教师要求)

1 个答案:

答案 0 :(得分:0)

这是jsfiddle你想要发生的事吗?

HTML:

<form>
    <input name="nextLine" type="text" />
    <button type="button">
        <span>Add a line</span>
    </button>
</form>
<iframe height="100" width="200"></iframe>

JavaScript的:

(function () {
    'use strict';
    var button, iframe, input;
    function addLine (cD, input, val) {
        return function () {
            var body, line;
            body = cD.getElementsByTagName('body')[0]
            line = cD.createElement('p');
            line.innerText = val.toString() + ': ' + input.value;
            body.appendChild(line);
            val += 1;
        }
    }
    button = document.getElementsByTagName('button')[0];
    iframe = document.getElementsByTagName('iframe')[0];
    input = document.getElementsByTagName('input')[0];
    button.addEventListener('click', addLine(iframe.contentDocument, input, 0), true);
}());