我在一个名为“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元素存在于另一个窗口中。有没有其他方法来改变字符串?
答案 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 []类似。