整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Java编程都学什么?关于JavaScript之BO

Java编程都学什么?关于JavaScript之BOM对象的知识整理

源:升学就业帮讲师——肖云锐

BOM对象学习网站:

学习网站


1 认识BOM对象

1.1 什么是BOM

BOM是Browser Object Model的简写,即浏览器对象模型。

BOM由一系列对象组成,用于访问、控制、修改浏览器的属性和方法。

BOM没有统一的标准(每种客户端(IE/google浏览器)都可以自定标准。

1.2 理解示意图

BOM的顶层是window对象,window下面包含一些浏览器相关对象,例如文档对象document,地址栏对象location,导航对象navigation,屏幕对象screen,历史记录对象history,如下图所示:

1.3 Window对象

常用的方法:

alert(); // 弹出一个提示框.
confirm()// 弹出一个确认框
prompt(); // 输入框
setTimeout(); // 延时任务
setInterval(); // 周期任务
clearTimeout(); // 清除延时任务
clearInterval(); // 清除周期任务
open(); // 打开新的窗口
close(); // 关闭指定窗口

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">    
<meta name="viewport" content="width=device-width, initial-scale=1.0">    
<title>BOM对象</title>    
<script>
        /* 
            alert(); // 弹出一个提示框.
            confirm()// 弹出一个确认框
            prompt(); // 输入框
            setTimeout(); // 延时任务
            setInterval(); // 周期任务
            clearTimeout(); // 清除延时任务
            clearInterval(); // 清除周期任务
            open(); // 打开新的窗口
            close(); // 关闭指定窗口
         */
        // alert(); 弹出一个提示框.
        function poupWindow() {
            alert("我被点击了");
        }
  
      // confirm() 弹出一个确认框
        function confirmWindow() {
            var flag = confirm("确定删除吗?");
            if (flag) {
                alert("删除成功!!!");
            } else {
                alert("取消!!!");
            }
        }
        // prompt(); 输入框
        function promptWindow() {
            var age = prompt("请输入您的年龄:", 18);
            alert("您输入的年龄是: " + age);
        }
        var taskId = null;
        // setTimeout(); 延时任务
        function task() {
            alert("任务开始了!!!");
        }
        function startTask() {
            id = setTimeout(task, 3000);
        }
        // clearTimeout() 清除延时任务
        function stopTask() {
            clearTimeout(id);
        }
        var intervalId = 0;
        // setInterval();
 // 周期任务        function startIntervalTask() {
                if (intervalId == 0) {
                    intervalId = setInterval(function () {
                        var date = new Date();
                        var hour = date.getHours();
                        var minute = date.getMinutes();
                        var second = date.getSeconds();                        console.log(hour + ": " + minute + ": " + second);
                    }, 1000); 
        
       } 
           }    
    function stopIntervalTask() {
            if(intervalId != 0) {  
              clearInterval(intervalId);  
              intervalId = 0;
            }  
                 } 
       var bdWin = null;
        // open(); 
// 打开新的窗口
        function openWindow() {
            var url = "http://www.baidu.com";
            bdWin = open(url);
        }
        // close(); // 关闭指定窗口
        function closeWindow() {
            bdWin.close();
        }
    </script>
</head>
<body>
    <input type="button" value="弹出框" onclick="poupWindow();"> <br>
    <input type="button" value="验证框" onclick="confirmWindow();"> <br>
    <input type="button" value="提示框" onclick="promptWindow();"> <br>
    <input type="button" value="提示框" onclick="promptWindow();"> <br>
    <input type="button" value="开启延时任务" onclick="startTask();"> <br>
    <input type="button" value="停止延时任务" onclick="stopTask();"> <br>
    <input type="button" value="开始周期任务" onclick="startIntervalTask();"> <br>
    <input type="button" value="停止周期任务" onclick="stopIntervalTask();"> <br>
    <input type="button" value="开启窗口" onclick="openWindow();"> <br>
    <input type="button" value="关闭窗口" onclick="closeWindow();"> <br>
</body>
</html>

1.4 History对象:浏览器的历史对象

常用的方法

back()go()forward()

需求: A页面跳转到B页面,B页面后退到A页面,A页面前进到B页面

代码示例

A页面代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>A</title>
    <script>
        function go() {
            location.href = "B.html"; 
       }      
  function forward() {
            history.forward();
        }
    </script>
</head>
<body>
    A Page
    <input type="button" value="go" onclick="go()"> 
   <input type="button" value="前进" onclick="forward()">
</body>
</html>
B页面代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  <title>history对象</title> 
   <script>   
     function goback() {   
         history.back();
        }  
  </script>
</head>
<body> 
   B page
    <input type="button" value="后退" onclick="goback()">
</body>
</html>

1.5 location对象: 地址栏对象

常用属性和方法:

host:ip:端口hostname: ipport:端口pathname:路径href: url全路径reload: 重新加载当前页面replace: 替换当前页面location.href=url: 跳转到指定页面

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
   <title>BOM对象_location对象</title>
    <script> 
       function showLocationInfo() { 
           console.log(location.href);
            console.log(location.host);
            console.log(location.port);
            console.log(location.hostname);
console.log(location.pathname);
        }  
      function reloadCurrentPage() { 
           location.reload();
        }      
  function replaceCurrentPage() {
            location.replace("http://www.taobao.com");  
      }    
    function jumpPage() {    
        location.href = "http://www.baidu.com"; 
       }
    </script>
    </head>
<body>   
 <input type="button" value="locationInfo" onclick="showLocationInfo()">
    <input type="button" value="reloadCurrentPage" onclick="reloadCurrentPage()">
    <input type="button" value="replaceCurrentPage" onclick="replaceCurrentPage()">
    <input type="button" value="jumpPage" onclick="jumpPage()">
</body>
</html>

1.6 Screen对象:屏幕对象

常用属性:

widthheight

1.7 Navigator对象:浏览器对象

常用属性:无

示例代码

 SOLIDWORKS Composer支持多种3D数据格式的输入,其中包括SOLIDWORKS、CATIA、PRO/E、Inventor 等多种软件。前面几期也做过相关介绍,将现有的3D数据导入SOLIDWORKS Composer中,可以快速的制作动画,技术手册及3D交互式内容。可以将这些内容保存为图像和动画为JPG光栅图像图片,SVG矢量图像图片和AVI动画。

  至此,这些互动式档案和动画,我们只能放在电脑或手机中观看及操作。如果我们想将此文文件放在网络上并同样实现互动式操作,那么,我们就需要使用SOLIDWORKS Composer发布功能,将文件转化为HTML档。小编在此将和大家一起来探讨如何发布SOLIDWORKS Composer文件到默认的HTML模板和自定义HTML。

  首先,发布一个SOLIDWORKS Composer文件到默认的HTML模板,当安装完成SOLIDWORKS Composer后,会自带默认的HTML模板,位置如?SOLIDWORKS Composer install_dir?\Profile 文件夹中。

  当把SOLIDWORKS Composer 中的内容发布为HTML档时,在菜单栏中选择【文件】-【发布】-【HTML】(如图1)。注意在此,会增加HTML输出选项,SOLIDWORKS Composer 提供六种HTML输出配置文件,包含BOM(零件表)、Full(完整)、Meta-properties(元属性)、PMI、Simple(简单)及View(视图)版面格式,如(图2)所示。我们可以根据需求来选择需要哪种版面格式输出。如果没有选择,系统会默认为Simple版面格式发布HTML文件。



  发布HTML文件后,HTML页面有哪些功能?(表1)可以详细为大家解释,我们可以根据我们的不同需求选择相应的配置,发布不同的HTML文件。


  下面,我们选择一个模型来发布HTML档案,先打开SOLIDWORKS Composer并选取一个模型,并发布为HTML,选择一个HTML输出样式,找到发布好的HTML文件,并使用IE浏览器打开HTML文件(注:自SOLIDWORKS Composer 2016 SP3开始支持Firefox浏览器),会跳出Active X 安全性警告,选择【允许】,此刻,就能在网页中查看SOLIDWORKS Composer制作的交互式档案(如图3)。注:若永久允许Active X 安全性警告,那么可在IE中选择【工具】-【Internet选项】-【高级】中勾选‘允许活动内容在我的电脑的文件中运行’(如图4)。

  此处注意,我们需要安装SOLIDWORKS Composer Player Pro 且激活,如果没有激活SOLIDWORKS Composer Player Pro,那么我们打开HTML档案,可能将只会看到空白主窗口和工具列。



  在HTML文件视口的右侧,有四个按钮,相关功能如下(表2)。页面其余部分显示SOLIDWORKS Composer内容。


  如果我们需要分享HTML文件给他人,那么我们需要拷贝以下四部分内容:

  1. ?文件名?.html文件;
  2. 包含SOLIDWORKS Composer的?文件名?_files文件夹;
  3. resources文件夹;
  4. 如果SOLIDWORKS Composer Player 没有提前安装到目标电脑中,还需DSComposerPlayerActiveX.cab,它位于?SOLIDWORKS_Composer_install_dir?\Bin 文件夹中。

  再者,我们也可以针对现有的HTML模板进行编辑(编辑前请备份原有模板),使用者可以用记事本之类的文本编辑器打开HTML文件,进行修改。

  如果要想学习更多关于如何自定义HTML配置文件,可与我们生信技术团队联系,可发送邮件至marketing@solidwise.com进行相关资讯,我们将第一时间给您答复。

于网站主机到期,原主机空间小,空间已使用了83%多,续费费用高,增购空间的费用更是奇高无比,增加个500M空间就要几百大洋。现在新买一台主机空间大(阿里最低的主机都5G空间了)、流量高、宽带也大,一年也就几百元,所以就想更换一下网站的主机。可是新主机买好后,迁移过程发现用织梦系统搭建的网站迁移到新主机后台却出现几个问题,现分享如下。

1、 网站后台登录页面不显示,如下图所示;

后台地址加上login.php才能正常显示登录界面,如下图所示

2、 虚拟主机的php.ini设置中:输出缓冲区数据块设置:启动,如下图;



后台地址不要再加login.php就可以正常显示登录页面了,如下图;



3、 后台登录页面验证码显示不正常:度娘上有人说是因为数据库配置文件使用了windows自带的文本编辑器修改信息保存后,文件包含了BOM格式引起验证码显示不正常。但我用专业代码编辑器sublime_text修改后,确认保存不带BOM格式的,也还是显示不正常。也有的人说要把sessions文件夹下除了index.html文件外都删除,我也试了,还是显示不正常。

4、 我的操作是根据有的人提示,干脆不要验证码了,把验证码给关掉。这个有两种处理方法;
方法一、修改login.php登录文件;
把:if(($validate=='' || $validate !=$svali) && preg_match("/6/",$safe_gdopen)){
改为:if(false){
这种处理方式后,验证码样式还在,但已经不要填验证就可以正常登录了;


方法二、修改data\safe\文件夹下面的inc_safe_config.php文件;
$safe_gdopen='1,2,3,4,5,6,7';
把这行中的6删除即可,删除6后刷新页面效果如下图,验证码输入框不显示也不要填了,直接账号、密码就可以正常登录。

5、 在用第4点的中方法二时,我再把inc_safe_config.php文件中那一行把6给加回去,再刷新一下后台页面,一切都正常了,验证码已可以正常显示输入了。如下图;

6、 总结:页面验证码正常后,我试着把数据配置文件保存成带BOM格式的,并没有出现验证码不显示问题,所以我认为跟使用文本编辑器修改数据配置文件无关。但建议修改程序代码还是要用专业编辑器,第一,看代码直观,有颜色好区分;第二,修改代码时有没有异常,专业编辑器都会有提醒;第三,确实很多代码是因为保存的编码不正确会造成程序异常;织梦这个验证码不显示的问题,我反复试了三次,把站点文件全部删除,再解压部署,就只要按方式二处理一下验证码就显示正常了。

好了,迁移用织梦系统建设的网站不能显示验证码的问题就分享这里。