我需要为我的打印打开一个新窗口,任何人都可以告诉我如何做到这一点吗?
我的按钮点击代码:
我的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 ="空白"我认为它不会起作用。
<input type="button" value="Print" class="btnFromIndexPrint" id="@item.SalesContractId"/>
如何在新页面上打开重定向?
重要!!!!!!! 的
return RedirectToAction("Print", new { id = contractInstance.SalesContractId });
答案 0 :(得分:4)
答案 1 :(得分:1)
window.location
的语法是
window.location = "url";
例如:
window.location ="http://www.mozilla.org";
因此它在您的代码中正常工作。
但window.open()
的语法是
window.open(URL, windowName[, windowFeatures])
例如:
window.open ("http://www.javascript-coder.com","mywindow","status=1");
你的语法有问题。
希望这有帮助。
答案 2 :(得分:0)
答案 3 :(得分: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)。我想相信某个值应该由服务器端处理代替?
希望这有帮助。