发布网友 发布时间:2022-04-20 09:33
共5个回答
热心网友 时间:2022-07-12 02:17
你这个left和center分别来自不同的框架(或者说一个在父页面,另一个在子框架),所以你不可能都用document.getElementById去获取。另外,你这个js.js也不应该在父页面和子框架内都运行,应该只放在一个子框架内运行,比如放在left,那么代码就应该是:
var left = document.getElementById("left");
var center = parent.document.getElementById("center");
parent代表当前frame所在的父页面
顺便说一句,现在早已经不流行用frame来做网页了,弊端很多。应该在同一个页面通过css布局来划分不同区域,这样会大大减轻编程难度,减少网络资源占用,提高网站运行效率,关键是这样做网页也会更美观。作为初学者,除非是完成作业需要,否则我建议你不要在这方面花太多时间,略微了解一下即可。
追问我把它们都放到一个文件夹里,测试还是不行
left的id已经被你改为lefts,所以代码也要改为
var left = document.getElementById("lefts");
另外,这跟它们是不是在同一个文件夹没有半毛钱关系,看来你没有理解我说的意思。我的意思是说,
这一行只能放在left_sop.html中,在另外三个文件中都要删掉!也就是说js.js只能在left_sop.html中运行。
热心网友 时间:2022-07-12 02:17
因为 document.getElementById(); 这样只能获取到你引入 js 或者在你写js代码的html页面中的元素,结合你的代码来说就是,不管你在四个页面中的哪一个页面中引入你写好的js文件,或者是把js代码直接复制到四个页面中的任何一个页面的script标签中,都是错误的,代码都不能正确执行。
原因之一就是我上面说的, document.getElementById() 这个方法只能获取你js所在页面中的标签,如果你把js放在 sop.html 页面中,document.getElementById('center') 这行代码是无效的,获取不到任何元素,因为 sop.html 页面中没有 id 为 center 的标签,你想获取的是 id 为 center 的 frame 标签,可它不在 sop.html 页面中啊,所以是获取不到的。
而你在 attribute.html 和 test.html 页面中使用那段js代码,不但达不到效果,还会报错,因为这两个页面中都没有 id 为 left 和 center 的标签,获取的结果是 null ,给null添加 onclick 事件是会报错的。
而在 h 开的html页面中, 即使你给第一个 frame标签添加上一个left的id,代码依然不能成功执行,因为 frameset 标签和 frame 标签 只支持添加 onload 和 onunload 事件,其它事件都不支持,onclick 自然也是不支持的。
另外,frameset 标签现在已经被废弃了,所以你现在这样写是会有很大的兼容问题的,还有,frameset 要配合专门的 dtd 头,直接用 <!doctype html> 这个是不行的。
热心网友 时间:2022-07-12 02:18
$(function(){ 写在这个里面的代码,只要你把JS引入JSP或者是HTML,那么一打开页面就会执行 }) 。
热心网友 时间:2022-07-12 02:18
你确定是点击的问题吗,我感觉你这个center都没有拿到啊.
这句document前边加个parent试试。(parent.document)
热心网友 时间:2022-07-12 02:19
我觉得把你要确认一下Src属性是否可以直接通过center这个dom对象直接改变,你可以在控制台里面拿到这个dom试一下