将html-page 2中的输入内容传递到html-page 1中的输入

时间:2016-12-15 10:53:44

标签: javascript html

我有2个网页,一个PHP页面,第1页(其中包括)a(文本)Input1,

和一个从属html页面,第2页,通过按Page_1中的按钮调用,其中包含(文本)Input2和标签表。

<input type="text" id="text_B1" name="text_B1" size="30" maxlength="40" onchange="text_B1_Chg()">

text_B1_Chg()将所有用户输入/更改保存到本地存储。

使用此脚本从第1页调用第2页:

function popup_win(url) {
    var win_options = 'top=50,left=370,height=710,width=400,...';
    var newWindow=window.open(url, 'name', win_options);

    if (window.focus) { 
        newWindow.focus()
    }

    return true;
}

输入_2最初为空,并通过单击标签表填充。点击完成后,Input_2可能包含以下内容: tag1; TAG2; TAG3; 即可。 Input_2的内容由此脚本在第2页的标记表的任何单元格中由 onclick事件触发创建:

<table id="taglist_tbl">
    <tr>
        <td class="a" onclick="txtTags_Add(this)">agr;</td>
    </tr>
    <tr>
        <td class="a" onclick="txtTags_Add(this)">alg;</td>
    </tr>
...
</table>


function txtTags_Add(sca) {
    // sca is the content of a cell in the tags table

    var selText = document.getElementById("txtTags");
    selText.value += " " + sca.innerText;

    localStorage.setItem("42_text_B1", selText.value);
}

本地存储42_text_B1 由Page1中的Input_1和Page_2中的输入2共享,以便Page_2应该通过本地存储更新Input_1中的任何点击。

虽然点击Page_2实际上会更改并更新本地存储,但当我关闭Page_2时,Page_1中的Input_1并非自动&#34;焦点返回到Page_1时更新。只有在浏览器中手动刷新Page_1后,Input_1的新内容才会显示。

问题:需要哪些代码(在Page_1的调用脚本中?),以便Input_1自动&#34;#34;更新?

[24.12.2016]请参阅下面的答案。

1 个答案:

答案 0 :(得分:0)

我添加了一个Javascript事件管理器

onfocus="text_B1_Updt()" 

在Input_1的HTML定义中(实际上称为text_B1

function text_B1_Updt() {
   var selText = document.getElementById("text_B1");
   selText.value = localStorage.getItem("42_text_B1");
}

但用户仍需点击它才能看到更新后的内容。