我实际上使用下面的代码让它工作。感谢所有给我他们投入的人,但不得不说我很难让它正常工作。希望它对javascript中的新用户有所帮助。
function SelectedRow() {
(function () {
if (window.addEventListener) {
window.addEventListener('load', run, false);
} else if (window.attachEvent) {
window.attachEvent('onload', run);
}
function run() {
var table = document.getElementById('alternativeCableTable');
table.onclick = function (event) {
var target = event.target || event.srcElement;
while (target && target.nodeName != 'TR') {
target = target.parentElement;
}
var cells = target.cells;
if (!cells.length || target.parentNode.nodeName == 'THEAD') {
return;
}
var stockcode = document.getElementById('stockcode');
var wiretype = document.getElementById('wiretype');
var wirelength = document.getElementById('wirelength');
var terminalA = document.getElementById('termA');
var sealA = document.getElementById('sealA');
var terminalB = document.getElementById('termB');
var sealB = document.getElementById('sealB');
stockcode.value = cells[0].innerHTML;
wiretype.value = cells[1].innerHTML;
wirelength.value = cells[2].innerHTML;
terminalA.value = cells[3].innerHTML;
sealA.value = cells[4].innerHTML;
terminalB.value = cells[5].innerHTML;
sealB.value = cells[6].innerHTML;
alert("The select data is sent to print page");
window.open("http://10.19.13.67/ReworkLabels/PrintLabelPage.aspx?stockcode=" + decodeURIComponent(stockcode.value) + "&wiretype=" + decodeURIComponent(wiretype.value) + "&wirelength=" + decodeURIComponent(wirelength.value)
+ "&terminalA=" + decodeURIComponent(terminalA.value) + "&sealA=" + decodeURIComponent(sealA.value) + "&terminalB=" + decodeURIComponent(terminalB.value) + "&sealB=" + decodeURIComponent(sealB.value),"_blank");
};
}
})();
}
答案 0 :(得分:2)
使用本地存储,而不是传递网址参数和/或Cookie,因为后两者有很多限制。
在http://www.webdesignerdepot.com/2013/04/how-to-use-local-storage-for-javascript/
中查看如何执行此操作的示例如果由于某种原因在服务器端需要这些值,那么您可以利用JSON序列化将值作为POST参数传递。 (或者只是带有隐藏输入的HTML表单;不要忘记将名称属性放在需要提交给服务器的html表单元素上。)
编辑:在你的问题的二读,看起来你只需要2个简单的字符串值。在这种情况下,请检查两个输入元素的值属性。 https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement此外,您可能希望为这些GET参数指定名称,例如
window.open("http://Testing/ReworkLabels/Default.aspx?f1="+encodeURIComponent(f1.value)+"&f2="+encodeURIComponent(f2.value),"my window");
有关encodeURIComponent函数的详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent。
请参阅Retrieve GET variables from URL in ASPX以便在目标ASP.NET页面中阅读这些参数。
另外,请确保不要直接打印它们的值(但要正确转义),以避免跨站点脚本(XSS)漏洞。
请参阅http://msdn.microsoft.com/en-us/library/ff649310.aspx和How do you avoid XSS vulnerabilities in ASP.Net (MVC)?
答案 1 :(得分:1)
尝试
window.open("http://Testing/ReworkLabels/Default.aspx?"+f1.value+"&"+f2.value,"my window");
代替。