我正在尝试使用Javascript实现一些功能。我有点像菜鸟,所以请耐心等待。
首先我使用此代码创建一个弹出窗口:
HTML:
<a href="JavaScript:newPopup('contact.html');"><img src="request.jpg"/></a>
JS:
var sPage;
function newPopup(url) {
popupWindow = window.open(
url,'popUpWindow','height=400,width=800,left=10,top=10,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no');
var sPath=window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
window.name = sPage;
}
这部分工作正常,但我接下来要做的是获取当前页面名称并将其放入'contact.html'中文本框的值。
这是我在弹出页面上使用的代码,试图这样做:
function add(text){
var TheTextBox = document.getElementById("prodcode");
TheTextBox.value = TheTextBox.value + window.name;
}
当它是我正在链接的普通页面时,这似乎有效,但如果它是一个弹出窗口它就不会工作。我也无法弄清楚如何从页面名称中删除扩展名。
我意识到可能有一百万种更好的方法可以做到这一点,但这对我来说似乎最有意义。我看过饼干,但我似乎无法弄清楚它们。
我知道我问了很多,但是非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
如果我正确理解了这个问题,您可以将窗口名称作为查询参数传递到您传递给newPopup
函数的网址中,然后在contact.html页面中抓取它以将其设置为进入盒子。
例如,您的newPopup
函数可以将查询参数添加到网址中,如下所示:
function newPopup(url) {
var sPath=window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
var windowName = sPage.split(".")[0];
popupWindow = window.open(url + '?window_name=' + windowName,'popUpWindow','height=400,width=800,left=10,top=10,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no');
window.name = windowName;
}
然后,在您的contact.html文件中,使用以下逻辑设置文本框的值时抓取查询参数:
function parseURLParams(name, locat) {
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(locat);
if (results) {
return results[1] || "";
} else {
return "";
}
}
function add(text) {
var TheTextBox = document.getElementById("prodcode");
TheTextBox.value = TheTextBox.value + parseURLParams("window_name", window.location.href);
}
希望它有所帮助!