在 Javascript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、Boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。请注意,在 Javascript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Javascript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。双引号内部包含双引号的时候,双引号改用单引号或者使用转义字符\"以上报告:'_console' 为空或不是对象,这是因为javascript中_console.focus();
_console.document.writeln(msg);不在函数debug(msg)中,浏览器会先执行这两句,你应该将其放到函数中。象这样:<Script>
var _console=null;
var n=1;
//window.document.write(typeof(_console));
function debug(msg)
{
if((_console==null)||(_console.closed))
{
_console=window.open("","console","width=600,height=300,resizable");
_console.document.open("text/html");
_console.focus();
_console.document.write(msg);
}
n++;
}</Script><body>
<form>
<input type="button" value="点击我" onclick="debug('你已经点击我:\t'+n+'次');">
</form>
</body>
调试javascript我喜欢用firefox浏览器。
_console.document.writeln(msg);不在函数debug(msg)中,浏览器会先执行这两句,你应该将其放到函数中。象这样:<Script>
var _console=null;
var n=1;
//window.document.write(typeof(_console));
function debug(msg)
{
if((_console==null)||(_console.closed))
{
_console=window.open("","console","width=600,height=300,resizable");
_console.document.open("text/html");
_console.focus();
_console.document.write(msg);
}
n++;
}</Script><body>
<form>
<input type="button" value="点击我" onclick="debug('你已经点击我:\t'+n+'次');">
</form>
</body>
调试javascript我喜欢用firefox浏览器。
可惜的是:代码运行的效果有点打折,我用的是IE7运行了一下,当显示“你点击我1次”后,再点击,已经弹出的窗口,还是显示“你点击我1次”,把窗口关了,再点,显示就不是1次了,是n累加后的次数。而本程序原来意思,是点击,一直在向document对象写点击次数,是实时刷新的。
后来我终于调试成功了,当然是在看了chouchy(城市刀客)的帖子下调试成功的!再次感谢!
正确代码如下:
<Script>
var _console = null;
function debug(msg)
{
if((_console==null)||(_console.closed))
{
_console=window.open("","console","width=600,height=300,resizable");
_console.document.open("text/plain");
} _console.focus();
_console.document.writeln(msg);
}
</Script>
<script>var n = 0;</script>
<form>
<input type="button" value="点击我" onclick="debug('你已经点击我:\t'+ ++n +'次');">
</form>我改动的地方是:
/*-------------------------------*/
_console.focus();
_console.document.writeln(msg);
还是放在if循环外面好,窗口一旦弹出,上面的条件就是假了,永远不会拾焦点,写文档了。
/*-------------------------------*/