簡體   English   中英

js控制台-SCRIPT5009中的ReferenceError:“ channel_click”未定義

[英]ReferenceError in js console -SCRIPT5009: 'channel_click' is undefined

我在js控制台的IE9中收到“ SCRIPT5009:'channel_click'未定義”錯誤。 該代碼可在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。

Javacript:

<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>

HTML:

<a href="#" role="button" class="hideshow" onclick="channel_click()">Print Preview</a>

<div id="header">
    <div class="pull-left">
    <h1>Edt Mode</h1>
    <h6 style="padding-bottom: 30px;">Some informational text here</h6>
</div>

<div>
    <div class="pull-left">
    <h1>PRINT ME!</h1>
    <h6 style="padding-bottom: 30px;">PRINT ME -  PRINT ME - PRINT ME</h6>
</div>

<div id="footer">
    <div class="pull-left">
    <h1>Edt Mode</h1>
    <h6 style="padding-bottom: 30px;">Some informational text here</h6>
</div>

<div class="model-backdrop">wow this is some more text</div>

您嘗試在html中使用它之前,是否加載了javascript文件? 如果這樣做,那不是問題,但是如果您不嘗試鏈接到html文件末尾的.js文件。

如果您不希望這樣做,則必須將channel_click包裝在window.onload中,或者使用jQuery

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

嘗試從錨標記中刪除onclick:

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

JS:

<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();
         });
    });

在這里它按預期工作

http://jsbin.com/imimom/2

由於您的html格式不正確,因此我看不到任何錯誤。 也許您可以為我們提供完整的標記?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM