muxrwc

厕所专栏

原创 src里js和iframe的巧妙应用。。。收藏

新一篇: 原型父链__proto__对象的介绍。。。 | 旧一篇: 函数作用域下的正则对象之兼容。。。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>src里js和iframe的巧妙应用,嘿嘿,不过还是不推荐使用iframe</title>
<script type="text/ecmascript">
var getButton = {

    static : 1
   
    , valueOf : function () {
        return "<button onclick=\"window.frameElement.parentNode.removeChild(window.frameElement)\">删除第 "
            + (this.static ++) + " 个iframe<\/button>";
    }
   
    , toString : function () {
        return this.valueOf();
    }
   
};

var a = function () {
    var i, d = document.createElement("iframe");
    document.body.appendChild(d);
    i = d.contentWindow; //这个是iframe的window对象
    i.onload = function () {
        this.document.body.innerHTML = getButton;
    };
    i = d = null;
};

var b = function () {
    var a = ["\"<s" + "cript", "<\/s" + "cript>\""], d = document.createElement("iframe");
    d.src = [
    //这很明显,JS为的href或者src等属性里的javascript:的执行环境,都是新的地址为准(就是window对象)
        "javascript:"
        , a[0]
        , ">window.o" + "nload = function () { document.body.innerHTML = top.getButton; };"
        , a[1]
    ].join("");
    document.body.appendChild(d);
    d = null;
};

window.onload = function () {
    //如果想给ifm值的话
    try {
        a();
    } catch (exp) {
        alert("a 函数错误:" + exp.message);
    }
    try {
        b();
    } catch (exp) {
        alert("b 函数错误:" + exp.message);
    }
};
</script>
</head>
<body>
</body>
</html> 

发表于 @ 2007年12月26日 12:08:00|评论(loading...)|编辑

新一篇: 原型父链__proto__对象的介绍。。。 | 旧一篇: 函数作用域下的正则对象之兼容。。。

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © muxrwc