从javaScript更改两个html文件的字符串

时间:2015-12-01 18:32:34

标签: javascript html css html5

我在一个名为“filed1”的文件html中有一个列表:

<ul> 
    <li>Nombre:<a class="boton" onclick=move() title="Caja">Caja</a><br> 
    <FONT SIZE=2>Fecha: 21/12/1994</font></font></li>
</ul>

现在我想更改其他html“filed2”中的字符串:

<a id="logo-header2">
    <h1>
        <span class="site-name" id="element">Details</span><br>
    </h1>
</a> 

使用Java脚本:

function move() {
    mywindow = window.open("file2.html");
    mywindow.document.getElementById("element").innerHTML="Changed");
}

但是有一个错误表明mywindow.document.getElementById("element")为NULL,为什么? id元素存在于另一个窗口中。有没有其他方法来改变字符串?

2 个答案:

答案 0 :(得分:0)

问题是您在加载窗口之前尝试检索DOM元素。

尝试以下

import csv    
with open(path) as f:
    reader = csv.DictReader(path)
    for line in reader:
        arrival = "{}, {}".format(line['CityArrival'], line['CountryArrival'])

答案 1 :(得分:0)

与@nikhil一样,mywindow在您调用时未定义,您需要将代码置于由onload事件触发的内容中。

您可以尝试的另一种方法是将字符串作为变量传递到url中,如下所示:

function move(){
    window.open("file2.html?str=Changed");
}

然后在file2.html中尝试在页面加载时运行的东西:

window.onload = function(){
    var str = $_GET('str');
    document.getElementById("element").innerHTML = str;
};

function $_GET(q){
    var $_GET = {};
    if(document.location.toString().indexOf('?') !== -1){
        var query = document.location
                       .toString()
                       .replace(/^.*?\?/, '')//Get the query string
                       .replace(/#.*$/, '')//and remove any existing hash string
                       .split('&');
        for(var i=0, l=query.length; i<l; i++){
           var aux = decodeURIComponent(query[i]).split('=');
           $_GET[aux[0]] = aux[1];
        }
    }
    return $_GET[q];
}

我包含的$ _GET函数只是用于获取查询字符串参数,其功能与php中的$ _GET []类似。