Javascript HTML块仅在Firebug运行时出现在DOM中
在过去的几个小时里,我一直在用我的头撞这个 我正在用Javascript构建一个HTML块,并将其附加到页面的DOM中。问题是,只有当Firebug正在运行并且禁用Firebug没有帮助时,这种方法才有效。当Firebug不运行时,会生成代码,但不会附加到DOM中(这不是因为它不可见或其他原因) Safari和Chrome对此问题免疫 我应该调查什么 下面是被指控的代码:如果它看起来很奇怪,那是因为它确实很奇怪,我现在正在将它从最初的德国黑魔法风格(没有注释)重构为自解释的jqueryJavascript HTML块仅在Firebug运行时出现在DOM中,javascript,dom,firebug,Javascript,Dom,Firebug,在过去的几个小时里,我一直在用我的头撞这个 我正在用Javascript构建一个HTML块,并将其附加到页面的DOM中。问题是,只有当Firebug正在运行并且禁用Firebug没有帮助时,这种方法才有效。当Firebug不运行时,会生成代码,但不会附加到DOM中(这不是因为它不可见或其他原因) Safari和Chrome对此问题免疫 我应该调查什么 下面是被指控的代码:如果它看起来很奇怪,那是因为它确实很奇怪,我现在正在将它从最初的德国黑魔法风格(没有注释)重构为自解释的jquery func
function create_button() {
var textblock = $('div#textblock2');
var token;
token = $(textblock).text();
token = token.split('=')[1];
//delete the text that we parsed to build the btn
textblock.text('');
var form = write_form();
var btn = write_submit_btn(token);
console.log('form: ' + form);
console.log('btn: ' + btn);
textblock.append(form);
textblock.append(btn);
console.log('textblock2 contents:' + textblock.html());
}
function write_form() {
return "<form name='Formular'></form>";
}
function write_submit_btn(token) {
var btn;
if ( token.match(/weiter/) != null )
btn = "<input type='button' name='naechsteFrage' value='weiter' onClick='load_next_question();' />";
else
btn = "<input type='button' name='naechsteFrage' value='zur" + String.fromCharCode(252) + "ck' onClick='load_prev_question()' />";
return btn;
}
create_button();
函数创建按钮(){
var textblock=$('div#textblock2');
var代币;
令牌=$(textblock.text();
token=token.split('=')[1];
//删除我们为构建btn而解析的文本
textblock.text(“”);
var form=write_form();
var btn=写入\提交\ btn(令牌);
console.log('form:'+form);
console.log('btn:'+btn);
textblock.append(表单);
textblock.append(btn);
log('textblock2内容:'+textblock.html());
}
函数write_form(){
返回“”;
}
函数写入\提交\ btn(令牌){
var-btn;
if(token.match(/weiter/)!=null)
btn=“”;
其他的
btn=“”;
返回btn;
}
创建按钮();
console.log('textblock2内容:'+textblock.html())代码>需要删除。。。同样
console.log('form: ' + form);
console.log('btn: ' + btn);
Firebug未启动时,Firefox没有控制台,该功能终止
所有基于Webkit的浏览器都有一个内置控制台,因此不受此问题的影响。(另一方面,IE和Opera也会有这个问题。[还有链接,但我认为你不担心这个问题。;-)如果firebug关闭,任何对“控制台”方法的调用都会失败。这就是问题所在 尽管您应该始终删除实时环境中的控制台函数,但以下代码将确保正在运行的任何控制台函数在没有控制台时不会出现javascript错误:
if(!window.console||!console.firebug){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var i=0;i<names.length;++i)window.console[names[i]]=function(){}}
如果(!window.console | | |!console.firebug){var name=[“log”,“debug”,“info”,“warn”,“error”,“assert”,“dir”,“dirxml”,“group”,“groupEnd”,“time”,“timeEnd”,“count”,“trace”,“profile”,“profileEnd”];window.console={};for(var i=0;i)