js大神请进,求解惑

q138026310 2015-06-06 02:56:33
现有主界面 index.html里有这样一段js代码


var show = function(){
document.body.append('元素a');
}



在index.html里直属有个iframe标签 链接到 abc.html abc.html里有这样一段js代码


var show = top.show;
show(); //代码标记1


问题:
在abc.html里代码标记1处执行show方法后 结果是主界面index.html里添加了元素a

这里不期望修改index.html 想在代码标记1处执行的时候 元素a是添加到abc.html里

也许做不到 也许个人见识浅薄 希望大神不吝赐教 当万分感激。

(只剩下52分 这帖子给50分 也许有点少 但是我全部家当了 )
...全文
275 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2015-06-06
  • 打赏
  • 举报
回复
引用 2 楼 q138026310 的回复:
[quote=引用 1 楼 jslang 的回复:] 不修改index.html 的话只能把show函数抄一份写到abc.html里 要么就修改index.html 中的show函数 var show = function(win){ win.document.body.append('元素a'); } 调用时传个window对象过去 show(window)
用的GPL的授权 不能修改原有代码 覆盖也算修改 不知道有没有更好的方法 我觉得应该是从show和document的关系 什么面向对象之类的地方入手?[/quote] 你的目的很清楚 就是想实现 子窗体的 show方法 你就直接 在show方法里 指明 给 子窗口的document 添加 元素 比如子窗体的id = adc show = function(){ document.getElementById('abc').contentWindow.document.body.append('元素a'); }
forwardNow 2015-06-06
  • 打赏
  • 举报
回复
每一个页面都是一个独立的环境,都有各自的上下文; index.html 里定义了一个函数 show(),这个函数就是 index.html 这个页面的 show()函数, 跟嵌套页面 abc.html 没有任何关系,一旦调用show()就是在index.html 的上下文里执行; 但如果show()函数里有this关键字,则可以通过 apply() 更改this。 index.html var show = function(){ var title = document.createElement( "h1" ); title.innerHTML = "123"; this.document.body.appendChild( title ); } abc.html var show = top.show; show.apply( window );
天际的海浪 2015-06-06
  • 打赏
  • 举报
回复
为什么要调用父页面的函数?在子页面再写一个show函数不得了
q138026310 2015-06-06
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
不修改index.html 的话只能把show函数抄一份写到abc.html里 要么就修改index.html 中的show函数 var show = function(win){ win.document.body.append('元素a'); } 调用时传个window对象过去 show(window)
用的GPL的授权 不能修改原有代码 覆盖也算修改 不知道有没有更好的方法 我觉得应该是从show和document的关系 什么面向对象之类的地方入手?
天际的海浪 2015-06-06
  • 打赏
  • 举报
回复
不修改index.html 的话只能把show函数抄一份写到abc.html里 要么就修改index.html 中的show函数 var show = function(win){ win.document.body.append('元素a'); } 调用时传个window对象过去 show(window)

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧