Новое всплывающее окно не указывает на ссылки JavaScript и библиотеки - PullRequest
0 голосов
/ 23 августа 2011

Я использую эту функцию, чтобы открыть новое окно, используя 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();
        } 
    }

Новая страница работает должным образом, за исключением того, что она не распознает библиотеки include 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 голосов
/ 23 августа 2011

Это потому, что вы уже открыли окно, которое завершило бы событие загрузки, после этого вы размещаете содержимое, поэтому содержимое обрабатывается как текст, а функции скрипта не загружаются в открытое вами окно. Если предположить, что если бы функции javascript были написаны открыто в окне тега script, это бы сработало, поскольку внешние файлы сценариев не загружаются, вы получаете эти ошибки, попробуйте другой способ решения проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...