问答详情
源自:9-16 创建元素节点createElement

点击没反应?

<script type="text/javascript">

var main = document.body;

//创建链接

function createa(url,text)

{

   var input=document.createElement("input");

  input.type="button";

  input.value=text;

  input.setAttribute("onclick","javascript:window.open(url)");

  main.appendChild(input);   

}

createa("http://www.imooc.com/","慕课网");// 调用函数创建链接



</script> 

什么问题呢

提问者:YDJS 2015-05-29 13:20

个回答

  • YDJS
    2015-08-01 23:57:44

    万分感谢!!

  • 钱湛
    2015-05-29 14:44:52

    这个是因为你函数的参数url的作用域是在函数里面,而javascript:window.open(url)里面url获取的是全局的url变量,这个全局的url变量你没有定义,你只在函数里定义了url,自然他弹不出来窗口了。

    在你的var main = document.body;下面加一行:var gURL = "" ; 

    然后在你的函数function里面的第一行加上 gURL = url ; 

    最后把你javascript:window.open(url)换成javascript:window.open(gURL),应该就可以了 。

    为了防止弄不清楚,把代码给你贴上来....


    <script type="text/javascript">


    var main = document.body;


    var gURL = "" ; 


    //创建链接


    function createa(url,text)


    {


        gURL = url ; 


        var input=document.createElement("input");


        input.type="button";


        input.value=text;


        input.setAttribute("onclick","javascript:window.open(gURL)");


        main.appendChild(input);   


    }

    createa("http://www.imooc.com/","慕课网");// 调用函数创建链接


    </script>