JS函数为定义问题,浏览器老是显示函数fun2( )未定义

问题描述

JS函数为定义问题,浏览器老是显示函数fun2( )未定义
 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>改变图案的形状和颜色</title>
        <script type="text/javascript">

            function fun1(){
                document.body.innerHTML = ""
                for (i=0;i<12;i++) {
                    for (j=0;j<12-i;j++) {

                        document.write("<span style='color: red;'>*</span>");

                    }
                    document.write("<br />");
                }
                document.write("<br/><br/>");
                document.write("<input type='button' value='点我有惊喜' onclick='fun2()'/>")
            }

                function fun2(){
                document.body.innerHTML = " "
                for (i=12;i>0;i--) {
                    for (k=0;k<12-i;k++) {
                        document.write("&nbsp&nbsp");
                    }
                    for (j=0;j<i;j++) {
                        document.write("<span style='color: greenyellow;'>*</span>");
                    }
                    document.write("<br />");

                }
                document.write("<br/><br/>");
                document.write("<input type='button' value='点我有惊喜' onclick='fun1()'/>")
            }

        </script>
    </head>
    <body onload="fun1()">

    </body>
</html>

解决方案

文档流关闭后不要使用doucment.write,会创建新文档覆盖当前页面所有内容,包括js,用document.body.innerHTML +=

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>改变图案的形状和颜色</title>
    <script type="text/javascript">

        function fun1() {
            document.body.innerHTML = ""
            for (i = 0; i < 12; i++) {
                for (j = 0; j < 12 - i; j++) {

                    document.body.innerHTML += ("<span style='color: red;'>*</span>");

                }
                document.body.innerHTML += ("<br />");
            }
            document.body.innerHTML += ("<br/><br/>");
            document.body.innerHTML += ("<input type='button' value='点我有惊喜' onclick='fun2()'/>")
        }

        function fun2() {
            document.body.innerHTML = " "
            for (i = 12; i > 0; i--) {
                for (k = 0; k < 12 - i; k++) {
                    document.body.innerHTML += ("&nbsp&nbsp");
                }
                for (j = 0; j < i; j++) {
                    document.body.innerHTML += ("<span style='color: greenyellow;'>*</span>");
                }
                document.body.innerHTML += ("<br />");

            }
            document.body.innerHTML += ("<br/><br/>");
            document.body.innerHTML += ("<input type='button' value='点我有惊喜' onclick='fun1()'/>")
        }
    </script>
</head>
<body onload="fun1()">

</body>
</html>

解决方案二:

函数未定义错误排查

时间: 2024-08-23 04:20:59

JS函数为定义问题,浏览器老是显示函数fun2( )未定义的相关文章

javascript-JS老是提示函数未定义

问题描述 JS老是提示函数未定义 我的代码是这样的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> xxx function process(){ onHello=document.createTextNode("xxxxxxxxxxxxxxxxxx

JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法_javascript技巧

本文实例讲述了JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法.分享给大家供大家参考,具体如下: 主页面: <script type="text/javascript"> function SelectGroupCust() { var temp = window.showModalDialog("Default2.aspx?xx=" + Date(), "", "dialog

利用js实现在浏览器状态栏显示访问者在本页停留的时间

 本文为大家介绍下利用JavaScript实现在浏览器状态栏显示停留时间即在状态栏上显示访问者在本页停留的时间 问题描述:在状态栏上显示 ,访问者在本页停留的 时间 (如:您在本页停留了 (如:您在本页停留了 X小时 X分 X秒)    该问题相当于是设计一个计时器,用于显示浏览者在该页面停留了多长时间.要解决该问题,我想到的主要有两种方法.    方法一:利用系统时间.即先设置一个变量,用于获取登录开始时间startTime,然后利用setTimeout()函数让页面不停的刷新,在刷新的同时,

js window.onload 加载多个函数和追加函数详解

 本篇文章主要是对js window.onload 加载多个函数和追加函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 平时做项目 经常需要使用window.onload,   用法如下:   function func(){alert("this is window onload event!");return;}    window.onload=func;   或者如下:    window.onload=function(){alert("this is

ASPX中不能执行JS函数,提示未定义,真要命,求大侠帮忙

问题描述 <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="HTMLPage.aspx.cs"Inherits="HTMLPage"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-

JS魔法堂:函数节流(throttle)与函数去抖(debounce)

一.前言   以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃.   1. window对象的resize.scroll事件   2. 拖拽时的mousemove事件   3. 射击游戏中的mousedown.keydown事件   4. 文字输入.自动完成的keyup事件   实际上对于window的resize事件,实际需求大多为停止改变大小n毫秒后执行后续处理:而其他事件大多的需求是以一定的频率执行后续处理.针对这两种需求就出现了debo

javascript-JavaScript,进度条显示函数执行过程进度

问题描述 JavaScript,进度条显示函数执行过程进度 JavaScript,点击某个按钮开始执行函数,如何同时显示一个简单进度条?从而显示函数执行过程进度? 解决方案 如果是for循环这种基本ui是假死清空下,无法更新dom的进度的.如果是ajax,可以使用xmlhttpRequest level2的新特性onprogress,不过低版本呢ie不支持 ajax看这个:http://www.ruanyifeng.com/blog/2012/09/xmlhttprequest_level_2.

JS中setTimeout的巧妙用法前端函数节流_javascript技巧

什么是函数节流? 函数节流简单的来说就是不想让该函数在很短的时间内连续被调用,比如我们最常见的是窗口缩放的时候,经常会执行一些其他的操作函数,比如发一个ajax请求等等事情,那么这时候窗口缩放的时候,有可能连续发多个请求,这并不是我们想要的,或者是说我们常见的鼠标移入移出tab切换效果,有时候连续且移动的很快的时候,会有闪烁的效果,这时候我们就可以使用函数节流来操作.大家都知道,DOM的操作会很消耗或影响性能的,如果是说在窗口缩放的时候,为元素绑定大量的dom操作的话,会引发大量的连续计算,比如

PHP取得用户浏览器和系统函数

PHP取得用户浏览器和系统函数 //操作系统 function userOS(){ $user_OSagent = $_SERVER['HTTP_USER_AGENT']; if(strpos($user_OSagent,"NT 5.1")) { $visitor_os ="Windows XP (SP2)"; } elseif(strpos($user_OSagent,"NT 5.2") && strpos($user_OSag