收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 19412|回复: 5

点击onclick事件触发调用其他JS文件

[复制链接]
发表于 2010-3-27 22:27:09 | 显示全部楼层 |阅读模式
我希望实现的效果是点击onclick事件触发调用其他JS文件,也就是说如果不点击这个事件,被调用的JS文件不会再本页执行。我已经用了两种方法都失败,第一种是用innerHTML来输出,innerHTML写入<script src='a.js'></script>代码无法执行。然后我改成用div隐藏的块来实现,虽然点击之后JS文件内容显示出来了,但是其实在你点击之前浏览器已经执行过那个JS了,只不过没有显示出来罢了。这也不是我想要的效果。
大家帮我看看有什么办法没有?因为我的那个JS文件中调用了很多图片,如果打开页面就执行的话那我就会浪费很多流量。所以我希望实现用户点击某个按钮之后才会调用我的这个JS文件。
发表于 2010-3-27 22:50:02 | 显示全部楼层
用 jquery 有两种简单的实现方法

方法

  1. // 利用 jsonp
  2. function call1(url)
  3. {
  4.     $.getJSON(url + '?callback=?');
  5. }

  6. // 新建 script 标签
  7. function call2(url)
  8. {
  9.     var js = $('<script />');
  10.     js.attr('src', url);
  11.     $('head').append(js);
  12. }
复制代码


调用
  1. <input type="button" value="test1" onclick="call1('test.js');" />
  2. <input type="button" value="test2" onclick="call2('test.js');" />
复制代码


test.js
  1. alert(9);
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-27 22:58:50 | 显示全部楼层
拿下来测试了一下 点击按钮好像没反应
回复 支持 反对

使用道具 举报

发表于 2010-3-27 23:16:29 | 显示全部楼层
最简单的方法:
把你js的代码放到一个function里面 当点击按钮的时候执行 xx.onclick=function()...
你自己也说了 只有js运行才会加载图片,你不运行不就完了,非要想的这么复杂
回复 支持 反对

使用道具 举报

发表于 2010-3-27 23:19:28 | 显示全部楼层

 提示:您可以先修改部分代码再运行

回复 支持 反对

使用道具 举报

发表于 2010-3-28 10:08:13 | 显示全部楼层
这个东西innerHTML好像是有有浏览器有bug 记不清了,用createElement("script")

加上src 然后append上去可以执行的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2017-9-20 15:48 , Processed in 0.119155 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表