js——navigator,screen,history对象(BOM 3)

本文详细介绍了浏览器的navigator对象,用于识别客户端浏览器,并讲解了如何检测非IE和IE浏览器中的插件,如Flash。同时,文章还提到了screen对象和history对象的使用,以及如何调整浏览器窗口大小和操作历史记录。

识别客户端浏览器的事实标准,每个浏览器的navigator对象都有自己的一套属性,但也有一些共通的属性。

1609498-20190818114838251-543907801.png

  • 插件检测

    • 对于非IE浏览器,可以使用plugins数组来检查浏览器是否安装了常见的插件。该数组每一项都包含以下属性:

      1. name:插件名
      2. description:插件描述
      3. filename:插件的文件名
      4. length:插件所处理的MIME类型数量
      //检测插件IE中无效
          function hasPlugin(name){
              var name=name.toLowerCase();
              for(var i=0;i<navigator.plugins.length;i++)
              {
                  if(navigator.plugins[i].name.toLowerCase().indexOf()>-1)
                      return true;
              }
              return false;
          }
    • 对于IE,检查插件的方式是ActiveXObject类型,IE是以COM对象的方式实现插件的,而COM对象使用唯一表示符来标识。

      //检测IE中的插件,name是插件标识符
          function hasIEPluhin(name){
              try{
                  new ActiveXObject(name);
                  return true;
      
              }catch(err){
                  return false;
              }
          }
      
    • 对于所有浏览器来说,前两种检测方法差别太大,检查插件的经典方法是每种插件有专门的检测函数

      //检测插件IE中无效
          function hasPlugin(name){
              var name=name.toLowerCase();
              for(var i=0;i<navigator.plugins.length;i++)
              {
                  if(navigator.plugins[i].name.toLowerCase().indexOf()>-1)
                      return true;
              }
              return false;
          }
          //检测IE中的插件,name是插件标识符
          function hasIEPluhin(name){
              try{
                  new ActiveXObject(name);
                  return true;
      
              }catch(err){
                  return false;
              }
          }
      
          //检测所有浏览器中的Flash
          function hasFlash(){
              var result=hasPlugin("Flash");
              if(!result){
                  result=hasIEPluhin("ShockwaveFlash.ShockwaveFlash");
              }
              return result;
          }
          alert(hasFlash());
  • 注册处理程序

    可以让一个站点指明它可以处理的特定的类型信息,之后再详细介绍。

    • registerContentHandler()
    • registerProtocolHandler()

screen对象

用来表明客户端的能力,包括浏览器窗口外部显示器信息,如像素宽高度等。不同的浏览器可能有不同的属性,但是还是有很多属性是相同的

1609498-20190818114905476-46118470.png

这些属性可以用来调整浏览器窗口大小,比如浏览器占屏幕的百分之多少。

window.resizeTo(screen.availWidth,screen.availHeight)

history对象

history对象保存着用户从打开窗口开始的上网的历史记录。history是window对象的属性,每个浏览器窗口,框架都有自己的history和window相关联。开发人员不能通过history知道用户浏览过的url,但可以借用用户的url列表,在不知道实际url的情况下就行后退和前进。

//后退一页
history.go(-1);

//前进两页
history.go(2);

//跳转到www.baidu.com,如果url列表中有这条记录,就跳转过去,没有就什么也不做
history.go("http://www.baidu.com");

//模仿前进和后退
//前进一页
history.forward();
//后退一页
history.back();

还有一个history.length保存着浏览记录的数量,可用来测定当前页面是不是第一个页面等。

转载于:https://www.cnblogs.com/ellen-mylife/p/11371888.html

【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值