BOM

本文详细解析了BOM(浏览器对象模型)中的window对象,包括Document、History、Location、Navigator、Screen等主要组件及其使用方法,以及如何通过window对象获取浏览器位置、大小等信息,并提供了实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#BOM window对象(浏览器对象模型)



Document:使我们可以从脚本中对HTML页面的所有元素进行访问。 
History:包含用户(在浏览器窗口中)访问过的URL。、
Location: 包含有关当前URL的信息。
Narigator: 包含有关浏览器的信息。
Screen: 包含有关客户端显示屏幕的信息。


##window 对象
1 浏览器位置    
    
            screenX     screenY    //IE不支持        
            screenLeft                                
            screenTop    // screenTop IE要包括菜单栏。工具栏距离     

 window.alert("这是一个对话框");<br>

    例子 
            
            window.alert(window.screenX + " " + window.screenY);
            window.alert(window.screenLeft + " " + window.screenTop);
   

2 窗口大小(浏览器可见区域尺寸)

 
            window.innerWidth,windowHeight    (IE不支持)
            
            
            document.documentElement.clientWidth    
            document.documentElement.clientHeight
            这两种是通用方法


##对象方法

1 窗口移动
            
            window.moveBy(x,y)
            window.moveTo(x,y)        //将新窗口移动
            
            
            window.resizeBy(x,y)
            window.resizeTo(x,y)    //将新窗口变大
2  滚动条控制

            window.scrollBy(x,y)    
            window.scrollTo(x,y)    
            X值为水平方向移动,Y值为垂直方向

3 时间间隔函数(计时器)

        window.serInterval(code,Millisecond)        
        window.clearInterval(code,Millisecond)        //让计数停止
        
        window.setTimeout(code,Millisecond)
        window.clearTimeout(code,Millisecond)            //计数停止

        setTimeout 指执行一次

        code可以函数式(function)
        millisecond指毫秒

##history 对象

属性: length  访问过的链接个数

history.back()
history.forward()
history.go(number)



#location

属性

    href        返回完整的URL
    hostname    返回URL的主机名
    pathname    返回的URL路径名
    port        返回一个URL服务器使用的端口号
    search        返回一个查询部分


##location 方法

location.assign("URL")        加载一个新文档
location.reload                刷新一个当前文档    
location.replace("URL")        用一个新文档取代当前文档(没有历史记录)

##screen     对象

        availHeight        返回屏幕高度(不包括任务栏)
        availWidth        返回屏幕宽度
        width            返回屏幕最大宽度
        height            返回屏幕最大高度


##其他
    window.onload = function(){}    //onload 指HTML文档加载完后调用

    window.open(" "," "," ")
    第一个空填打开地址,默认为打开新窗口
    第二个填怎样打开(新建打开,在自身内打开)等
    第三个填打开窗口的样式(width height 等)    
03-15
### 关于 Byte Order Mark (BOM) 的技术概念 Byte Order Mark (BOM),即字节顺序标记,是一种用于表示Unicode编码文件中字节顺序的特殊字符。它通常出现在文件开头,帮助解析器识别文件使用的具体Unicode编码形式(如 UTF-8、UTF-16 或 UTF-32)。尽管 BOM 对某些程序透明无影响,但在处理文本时可能会引发兼容性问题。 #### BOM 的作用与常见编码关联 在 Unicode 编码标准下,BOM 被定义为 U+FEFF 字符,在不同编码中的表现如下: - **UTF-8**: 表现为三个字节序列 `EF BB BF`。 - **UTF-16 (BE)**: 表现为两个字节序列 `FE FF`。 - **UTF-16 (LE)**: 表现为两个字节序列 `FF FE`[^4]。 对于 Python 来说,默认支持多种编码方式,并允许开发者通过字符串指定具体的编码名称来读取或写入带 BOM 文件的内容[^1]。 #### 如何处理带有 BOM 的文本文件? 当遇到含有 BOM 的文件时,可以采用以下几种方法进行处理: ##### 方法一:使用 Python 自动移除 BOM Python 提供了内置的支持机制,能够自动检测并跳过 BOM 序列。例如,可以通过设置参数 `'utf-8-sig'` 实现这一功能: ```python with open('file_with_bom.txt', mode='r', encoding='utf-8-sig') as file: content = file.read() ``` 上述代码片段会先尝试寻找并去除可能存在的 BOM 标记后再继续正常操作数据流。 ##### 方法二:手动删除 BOM 如果需要更精细控制或者不希望依赖特定库函数,则可以选择手工实现逻辑清除掉这些额外标志位。下面展示了一个简单的例子说明如何做到这一点: ```python def remove_bom(file_path): import codecs bom_bytes = b'\xef\xbb\xbf' with open(file_path, 'rb') as f: raw_data = f.read(len(bom_bytes)) if raw_data != bom_bytes: raise ValueError("File does not start with expected BOM.") # Continue reading rest of the file after skipping over BOM bytes. with open(file_path, 'r', newline='', encoding='utf-8') as cleaned_file: return cleaned_file.readlines() lines_without_bom = remove_bom('./example.txt') print(lines_without_bom[:5]) # Print first five lines post-BOM removal process. ``` 此脚本首先验证目标文档确实存在预期类型的 BOM;随后才执行进一步的动作以忽略该部分而专注于实际有效载荷的数据上[^2]。 #### 总结 虽然 BOM 可以为跨平台间交换提供便利条件,但也增加了复杂度以及潜在错误风险。因此了解其工作原理及其应对策略是非常重要的技能之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值