您好我正在开发MVC5应用程序。我有一个局部视图,它基本上是弹出窗口。我打电话点击下面的链接按钮。
window.open("/UploadDocument/ScannerUpload", "popupWindow", "width=1000,height=900,scrollbars=yes");
以下是我的ScannerUpload.cshtml
文件。
<html>
<head>
<script type="text/javascript">
{
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var foo = getParameterByName('Param1');
}
</script>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<title>ScannerView</title>
</head>
<body>
<div>
<iframe src="http://Scanner.aufytech.com/C3CKYC Scanner.xbap?" width="1000" height="600" scrolling="auto"></iframe>
</div>
</body>
</html>
我想向ScannerUpload.cshtml
文件发送一些参数。我可以知道有什么办法可以在ScannerUpload.cshtml
附加params吗?任何帮助,将不胜感激。谢谢。
答案 0 :(得分:1)
所以,首先要做的是弄清楚如何在第一次调用中传递参数。所以这个:
window.open("/UploadDocument/ScannerUpload", "popupWindow",
"width=1000,height=900,scrollbars=yes");
需要成为这个:
window.open("/UploadDocument/ScannerUpload?Param1=A&Param2=B", "popupWindow",
"width=1000,height=900,scrollbars=yes");
你是怎么做的取决于你,因为我不知道这些参数来自哪里。如果它们来自html页面上的字段,则需要使用javascript事件动态更新window.open
。
现在您需要在第二个窗口中选择这些参数。回想起来,我意识到我们不需要解析我们可以抓住URL末尾的参数
因此,请大量参考:dynamically set iframe src iFrame onload JavaScript event
这样的事情可能有效(未经考验的抱歉):
<html>
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<title>ScannerView</title>
</head>
<body>
<div>
<iframe id="myIframe" src="" width="1000" height="600" scrolling="auto" onLoad="fUpdateiFrame();"></iframe>
</div>
<script type="text/javascript">
function fUpdateiFrame() {
if (!url) url = window.location.href;
document.getElementById('myIframe').src = "http://Scanner.aufytech.com/C3CKYC Scanner.xbap?" + url.split("?")[1];
}
</script>
</body>
</html>
所做的更改:
如果第一次有效,我会感到很惊讶 - 请回复任何问题。