首页 > 语言 > JavaScript > 正文

JavaScript常用脚本汇总(二)

2024-05-06 14:45:00
字体:
来源:转载
供稿:网友

把JavaScript中的伪数组转换为真数组

在 JavaScript 中, 函数中的隐藏变量 arguments 和用 getElementsByTagName 获得的元素集合(NodeList)都不是真正的数组,不能使用 push 等方法,在有这种需要的时候只能先转换为真正的数组。

对于 arguments,可以使用 Array.prototype.slice.call(arguments); 来达到转换的目的,但对于 NodeList 则不行了,其在 IE8 及以下将会报错,只能说其 JS 引擎有所限制。

因此,如果需要把 NodeList 转换为真正的数组,则需要做下兼容处理。

代码如下:
function realArray(c) {
    try {
        return Array.prototype.slice.call(c);
    } catch (e) {
        var ret = [], i = 0, len = c.length;
        for (; i < len; i++) {
            ret[i] = (c[i]);
        }
        return ret;
    }
}

JavaScript设置主页功能

代码如下:
<!DOCTYPE html>
<html>
<head>
    <title>JavaScript设置“设为首页”和“收藏页面”(兼容IE和火狐浏览器)</title>
    <meta charset="utf-8">
    <script type="text/javascript">
        function setHomepage() {
            if (document.all) {
                /*IE*/
                document.body.style.behavior = 'url(#default#homepage)';
                document.body.setHomePage(window.location.href);
            } else if (window.sidebar) {
                /*FF*/
                if (window.netscape) {
                    try {
                        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                    } catch (e) {
                        alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support值该为true");

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选