1

我需要为我的打印打开一个新窗口,谁能告诉我该怎么做?

我的按钮点击代码:

我的 window.location 工作,但不能使用 window.open

$('.btnFromIndexPrint').click(function () {
    if (document.URL.indexOf('index') > -1) {
         // window.location = '../Print/' + $(this).attr('id');
         window.open = '../Print/' + $(this).attr('id');
    } else {
        //window.location = 'Contract/Print/' + $(this).attr('id'); //Redirect  from Index page to print action
        window.open = 'Contract/Print/' + $(this).attr('id');
    }

});

我的html:

我知道有一个叫做 target ="blank" id 的东西,但我认为它不会起作用。

<input type="button" value="Print" class="btnFromIndexPrint" id="@item.SalesContractId"/>

我将如何在新页面上打开重定向?

重要的!!!!!!!

return RedirectToAction("Print", new { id = contractInstance.SalesContractId });
4

4 回答 4

5

应该:

window.open(url_or_your_page);

请参阅:示例

于 2012-06-14T05:59:49.807 回答
1

window.locationis 的语法

window.location = "url";

例如:

window.location ="http://www.mozilla.org";

因此它在您的代码中运行良好。

但是 for 的语法window.open()

window.open(URL, windowName[, windowFeatures])

例如 :

window.open ("http://www.javascript-coder.com","mywindow","status=1");

你的语法有问题。

希望这可以帮助。

于 2012-06-14T06:09:35.983 回答
0

你应该试试 :

window.open(url, [window name], "height=x,width=y");

当指定宽度/高度时,它会在新窗口中打开它。参见window.open

于 2012-06-14T06:02:45.607 回答
0

首先,我希望您已将上述代码包含在 jQuery 的 document.ready 函数中或将代码放在页面底部。这是因为如果指定的打印按钮尚未加载到 DOM 中,选择器 ($) 将找不到它,因此您的点击侦听器将不会附加到它。

其次, window.open 是一个函数,不应像变量一样分配(您在上面已经完成了)。换句话说,它是

window.open( parameters ); //NOT window.open = value;

请参阅下面的示例代码,它或多或少是您上面的更正和优化。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Window.Open</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  <script type="text/javascript">
    //@Author: Prof. No Time
    $(document).ready(function(){
      $('.btnFromIndexPrint').click(function () {
         var urlToOpen = '';
         var docURL = document.URL;

         if (docURL.indexOf('index') > -1) {
            urlToOpen = '../Print/' + $(this).attr('id');
         }
         else {
            urlToOpen = 'Contract/Print/' + $(this).attr('id');
         }

         //alert('urlToOpen > ' + urlToOpen);
         if (urlToOpen != '') window.open(urlToOpen);
      });
   });
  </script>
 </head>

 <body>
    <input type="button" value="Print" class="btnFromIndexPrint" id="@item.SalesContractId"/>
 </body>
</html>

最后,我建议不要使用如上所示的此类 ID (@item.SalesContractId)。我想相信那个值应该被服务器端处理代替?

希望这可以帮助。

于 2012-06-14T07:02:26.923 回答