Javascript js控制台中的ReferenceError-SCRIPT5009:';频道点击';是未定义的

Javascript js控制台中的ReferenceError-SCRIPT5009:';频道点击';是未定义的,javascript,jquery,html,Javascript,Jquery,Html,我在js控制台的IE9中遇到了一个“SCRIPT5009:‘channel_click’is undefined”错误。该代码在chrome和firefox中工作,但在点击链接启动IE9中的js序列时,它突然停止 我一直试图解决这个问题,但没有成功,但我所做的是一系列事件的发生时间: 1) onclick - toggle div to hide 2) wait 1500 3) open print command - User closes the window to return to p

我在js控制台的IE9中遇到了一个“SCRIPT5009:‘channel_click’is undefined”错误。该代码在chrome和firefox中工作,但在点击链接启动IE9中的js序列时,它突然停止

我一直试图解决这个问题,但没有成功,但我所做的是一系列事件的发生时间:

1) onclick - toggle div to hide
2) wait 1500 
3) open print command
- User closes the window to return to page
4) wait 3500 toggle div to show again
我这样做的原因是,当用户决定打印页面时,我不希望打印预览拾取这些div序列

JavaScript:

<script>
//WAITS UNTIL EXCESS IS HIDDEN THEN FIRES PRINT COMMAND 
function channel_click(){

// anon wrapper function, 2 second delay
setTimeout( function () {
window.print();return false;
} , 1500 );

}
</script>


<script>
//HIDES EXCESS IN PREP FOR FIRING PRINT COMMAND PREVIOUS FUNCTION EXECUTES IN BETWEEN FOLLOWING FUNCTIONS
$(".hideshow").click(function () {
$("#header,#footer").toggle("slow");

setTimeout( function () {
$("#header,#footer").toggle("slow");
} , 3500 );
$('.modal-backdrop').hide();
});
</script>

//等待直到多余部分被隐藏,然后触发打印命令
功能通道_单击(){
//anon包装函数,2秒延迟
setTimeout(函数(){
window.print();返回false;
} , 1500 );
}
//隐藏多余的点火准备打印命令上一个函数在以下函数之间执行
$(“.hideshow”)。单击(函数(){
$(“#页眉,#页脚”)。切换(“慢速”);
setTimeout(函数(){
$(“#页眉,#页脚”)。切换(“慢速”);
} , 3500 );
$('.modal background').hide();
});
HTML:


Edt模式
这里有一些信息文本
打印我!
打印我-打印我-打印我
Edt模式
这里有一些信息文本
哇,这是更多的文字

在尝试在html中使用javascript文件之前,是否加载了该文件? 如果您这样做了,那不是问题所在,但是如果您不尝试链接到html文件末尾的.js文件

如果你不想这样做,你必须将你的频道包装起来,点击window.onload或者使用jQuery

$(document).ready(function() {
    function channel_click() {
        ....
    }
})

尝试从定位标记中删除onclick:

<a href="#" role="button" class="hideshow">Print Preview</a>

JS:


函数通道_click(){
//anon包装函数,2秒延迟
setTimeout(函数(){
window.print();返回false;
} , 1500 );    
}
$(文档).ready(函数(){//添加此
$(“.hideshow”)。单击(函数(e){
e、 预防默认值();
$(“#页眉,#页脚”)。切换(“慢速”);
channel_click();//调用print
setTimeout(函数(){
$(“#页眉,#页脚”)。切换(“慢速”);
} , 3500 );
$('.modal background').hide();
});
});

在这里,它按照您的预期工作


鉴于您的html格式不正确,我看不出有什么问题。也许您可以为我们提供完整的标记?

事实上,您的代码看起来不错,只是缺少了
。这有用吗?您可能还需要将脚本包装到
$(document).ready(/**/)现代浏览器(因为他使用的是chrome)它不需要
type=“text/javascript”
@Sandeep你最好使用它,有一些引擎渲染其他脚本类型,所以浏览器不会因为尝试而失败。是的,我同意你的观点,我总是使用它。但在这种情况下,这不是问题所在。我已经在这里发布并用小提琴回答了。
<a href="#" role="button" class="hideshow">Print Preview</a>
<script type="text/javascript">
function channel_click(){    
    // anon wrapper function, 2 second delay
    setTimeout( function () {
         window.print();return false;
     } , 1500 );    
 }

    $(document).ready(function() {  //add this
        $(".hideshow").click(function (e) {
            e.preventDefault();
            $("#header,#footer").toggle("slow");
            channel_click(); //call print

           setTimeout( function () {
              $("#header,#footer").toggle("slow");
           } , 3500 );
           $('.modal-backdrop').hide();
         });
    });