免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3063 | 回复: 14
打印 上一主题 下一主题

php中使用javascript的疑问,请指点,谢谢! [复制链接]

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-23 17:29 |只看该作者 |倒序浏览
在php中使用javascript,有些只能在ie中运行,在其他浏览器内会出错,所以想问问大家在php中应用javascript都是在什么情况下用,需要注意哪些问题?

论坛徽章:
0
2 [报告]
发表于 2005-07-23 18:01 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

这个问题解决办法是,用php生成支持不同浏览器的javascript

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
3 [报告]
发表于 2005-07-23 18:06 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

php去生成?

论坛徽章:
0
4 [报告]
发表于 2005-07-23 19:06 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

是呀~~~

论坛徽章:
0
5 [报告]
发表于 2005-07-23 19:45 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

我建议写自己的类库或者用现成的

论坛徽章:
0
6 [报告]
发表于 2005-07-23 20:02 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

好象没有特别好的解决方案吧.

要不你就给用户推荐一种浏览器

比如 在醒目位置 写上  推荐使用IE V5.5 或以上版本.

要是不累.就给每种浏览都写个页面吧.

论坛徽章:
0
7 [报告]
发表于 2005-07-24 00:35 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

用php去判断客户端的游览器,不同游览器给出不同javascript。


用$_SERVER["HTTP_USER_AGENT"],自己写个函数去判断。网络上也有相关的类。或者get_browser() ,不过服务器要设置一下!

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
8 [报告]
发表于 2005-07-24 07:29 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

那样的话那么多的浏览器,要写多少种啊,有没有一个通用的?

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
9 [报告]
发表于 2005-07-24 10:37 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

那你看看DW是怎么作的,他生成的代码,通用的

论坛徽章:
0
10 [报告]
发表于 2005-07-24 12:06 |只看该作者

php中使用javascript的疑问,请指点,谢谢!

[quote]原帖由 "xxhui"]ER_AGENT"],自己写个函数去判断。网络上也有相关的类。或者get_browser() ,不过服务器要设置一下![/quote 发表:


不提倡用浏览器甄别法。

如果浏浏览器支持某个js方法,那么可以用if检测

  1. var dom_support = false;

  2. if(document.getElementById) {
  3.   dom_support = true;
  4. }
复制代码


我说的写类库,就是按照自己的习惯,把各浏览器不同的方法实现用统一的名称封装起来。


例如对js事件影响的节点,可以写如下的api.

  1. var WebUtil = function() {
  2.   if(!dom_support) {
  3.     // goto none none js support page.
  4.   }
  5. }

  6. WebUtil.isSet = function(object) {
  7.    if(null != object && typeof object != "undefined") {
  8.       return true;
  9.    }
  10.    return false;
  11. }

  12. WebUtil.getEvntTargetElem = function(theEvnt) {
  13.   var theTargetElem = null;
  14.   try {
  15.   if(WebUtil.isSet(theEvnt)) {
  16.      if(WebUtil.isSet(theEvnt.srcElement))
  17.          theTargetElem  = theEvnt.srcElement;
  18.      else if (WebUtil.isSet(theEvnt.target))
  19.          theTargetElem  = theEvnt.target;
  20.      else
  21.          theTargetElem = null;
  22.   }
  23.   } catch(e) {}
  24.   return theTargetElem;
  25. }

  26. WebUtil.getEvnt = function(evnt) {
  27.   var theEvnt = null;
  28.   try {
  29.     if(WebUtil.isSet(window.event))
  30.       theEvnt = window.event;
  31.     else if(WebUtil.isSet(evnt))
  32.       theEvnt = evnt;
  33.     else
  34.       theEvnt = null;
  35.   } catch(e) {}
  36.   return theEvnt;
  37. }

  38. function myTestHandle(evnt) {
  39.   try {
  40.     var theEvnt = WebUtil.getEvnt(evnt);
  41.     var theEvntTarget = WebUtil.getEvntTargetElem(theEvnt);
  42.     if(WebUtil.isSet(theEvntTarget)) {
  43.        if(theEvntTarget.nodeType == 1) {
  44.                 alert("Target Element's Tag = " + theEvntTarget.tagName);
  45.        } else {
  46.          // "NOT ELEMENT_NODE"
  47.          alert("Target Element's Tag = " + theEvntTarget.parentNode.tagName);
  48.        }
  49.     }
  50.   } catch(e) {
  51.      alert("test failed");
  52.   }
  53. }

  54. document.onclick = myTestHandle;
复制代码



兼容浏览器很花时间,还需要耐心调试,而且不能保证100%兼容所有的浏览器,总会有漏网之鱼,所以用js不能过于依赖它,不要因为js影响了网站的安全性能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP