新的弹出窗口并不指向javascript链接和库

时间:2011-08-23 14:18:59

标签: javascript jquery html internet-explorer

我使用此函数打开一个新窗口,使用htmlMarkup作为html内容。

function PC_DownloadAsPdfSuccess(htmlMarkup) {
        $("div#rightcolumnFARP").detachLoader();
        if (htmlMarkup != null && htmlMarkup.length != 0) {               
            var printWindow = window.open("", "");
            var newDocument = printWindow.document;

            newDocument.open();
            newDocument.write(htmlMarkup);
            newDocument.close();
        } 
    }

新页面按预期工作,除了不能识别包含js库,例如jquery,MicrosoftMvcAjax.js等。我得到各种错误,如:

$未定义,未定义jquery,未定义xVal。我很确定这是因为新窗口中链接的路径没有正确指向脚本,而只是在IE中。 Firefox没有这个问题。

这是头部htmlMarkup似乎是问题所在。我尝试过几个级别(使用../)但仍然没有运气。

    <head id="Head1"><title>
    Print preview
</title>

    <script src="/Scripts/jquery-1.6.1.min.js" type="text/javascript"></script>

    <link href="/Content/ui.base.css" rel="stylesheet" type="text/css"
        media="screen" />

<script src="/Scripts/utils.js" type="text/javascript"></script>
    <script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    <script src="/Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-1.6.1.min.js" type="text/javascript"></script>

    <script src="/Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.preloadImages.js" type="text/javascript"></script>
    <script src="/Scripts/grid.locale-en.js" type="text/javascript"></script>
    <script src="/Scripts/grid.base.js" type="text/javascript"></script>
    <script src="/Scripts/grid.formedit.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.tablednd_0_5.js" type="text/javascript"></script>
    <script src="/Scripts/xVal.jquery.validate.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.validate/jquery.validate.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-html-encode-decode.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-timedLogout.js" type="text/javascript"></script>
    <script src="/Scripts/round-corners.js" type="text/javascript"></script>
    <script src="/Scripts/superfish.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.formatCurrency-1.3.0.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.tipTip.js" type="text/javascript"></script>
    <script src="/Scripts/easyslider.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.json.min.js" type="text/javascript"></script>
    <script src="/Scripts/browserSelector.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.antiForgeryToken.js" type="text/javascript"></script>
     <script src="/Scripts/jquery.watermark.min.js" type="text/javascript"></script>
      <script src="/Scripts/jquery.autocomplete.js" type="text/javascript"></script>
       <script src="/Scripts/jquery.calculation.js" type="text/javascript"></script>
    <script src="/Scripts/DetectBrowser.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.infoblock.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.jloader.js" type="text/javascript"></script>
    <script src="/Scripts/jqGridHeight.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.alerts.js" type="text/javascript"></script>
    <script src="/Scripts/tabs.js" type="text/javascript"></script>
    <script src="/Scripts/CustomValidation.js" type="text/javascript"></script>
    <script src="/Scripts/fullcalendar.js" type="text/javascript"></script>
     <script language="javascript" type="text/javascript" src="/Scripts/jqplot/jquery.jqplot.min.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.pieRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.barRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.categoryAxisRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.dateAxisRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.barRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.canvasAxisTickRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.canvasTextRenderer.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/plugins/jqplot.highlighter.js"></script>
    <script language="javascript" type="text/javascript" src="/Scripts/jqplot/excanvas.min.js"></script>
<head>

1 个答案:

答案 0 :(得分:0)

这是因为在您放置内容之后,您已经打开了窗口,该窗口已经完成了加载事件,因此内容被视为文本,并且脚本功能未加载到您打开的窗口中。如果假设是否在脚本标记内的窗口上公开编写了javascript函数它会工作,因为外部脚本文件没有加载,你正在收到这些错误,尝试其他方法来修复你的问题