Maison > Article > interface Web > Explication détaillée de la méthode frontale de transmission des paramètres entre les pages HTML
Une situation qui se produit souvent dans les projets est qu'il existe une liste, telle qu'une liste de cas, cliquez sur un élément de la liste pour accéder à la page de détails. Les détails sont générés sur la base d'un enregistrement cliqué, car les cas et les pages de détails spécifiques sont ajoutés ultérieurement par les utilisateurs. Lorsque nous commençons à écrire, il est impossible de tous les épuiser. Par conséquent, lorsque nous accédons à la page, nous devons transmettre un paramètre afin de pouvoir faire une demande de données via ce paramètre, puis générer la page en fonction des données renvoyées par l'arrière-plan. Par conséquent, sauter à travers la balise a ne fonctionnera certainement pas.
Nous écrivons souvent des formulaires. Lors de la soumission, nous pouvons transmettre des paramètres si nous utilisons le formulaire et le masquons, l'effet devrait être obtenu.
De plus, window.location.href et window.open peuvent également obtenir cet effet.
1. Passez les paramètres via le formulaire
<html> <head> <!--网站编码格式,UTF-8 国际编码,GBK或 gb2312 中文编码--> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="Keywords" content="关键词一,关键词二"> <meta name="Description" content="网站描述内容"> <meta name="Author" content="Yvette Lau"> <title>Document</title> <!--css js 文件的引入--> <!-- <link rel="shortcut icon" href="images/favicon.ico"> --> <link rel="stylesheet" href=""/> <script type = "text/javascript" src = "jquery-1.11.2.min.js"></script> </head> <body> <form name = "frm" method = "get" action = "receive.html" onsubmit = "return foo()" style = "position:relative;"> <input type="hidden" name="hid" value = "" index = "lemon"> <img src = "main_jpg10.png" / alt="Explication détaillée de la méthode frontale de transmission des paramètres entre les pages HTML" > <input type = "submit" style = "position:absolute;left:10px;top:0px;width:120px;height:40px;opacity:0;cursor:pointer;"/> </form> <form name = "frm" method = "get" action = "receive.html" onsubmit = "return foo()" style = "position:relative;"> <input type="hidden" name="hid" value = "" index = "aaa"> <img src = "main_jpg10.png" / alt="Explication détaillée de la méthode frontale de transmission des paramètres entre les pages HTML" > <input type = "submit" style = "position:absolute;left:10px;top:0px;width:120px;height:40px;opacity:0;cursor:pointer;"/> </form> <form name = "frm" method = "get" action = "receive.html" onsubmit = "return foo()" style = "position:relative;"> <input type="hidden" name="hid" value = "" index = "bbb"> <img src = "main_jpg10.png" / alt="Explication détaillée de la méthode frontale de transmission des paramètres entre les pages HTML" > <input type = "submit" style = "position:absolute;left:10px;top:0px;width:120px;height:40px;opacity:0;cursor:pointer;"/> </form> </body> </html> <script> function foo(){ var frm = window.event.srcElement; frm.hid.value = $(frm.hid).attr("index"); return true; } </script>
Lorsque vous cliquez sur l'image, accédez à la page recevoir.html. L'url de la page devient :
La chaîne que nous voulons transmettre a été transmise.
Ensuite, effectuez le fractionnement de chaîne sur l'URL actuelle
window.location.href.split(“=”)[1]//Obtenez du citron
Une fois que nous avons obtenu les paramètres qui doivent être transmis, nous pouvons passer à l'étape suivante sur cette base.
En plus d'obtenir les paramètres transmis par l'URL via le fractionnement de chaînes comme mentionné ci-dessus, nous pouvons également les obtenir via une correspondance régulière et la méthode window.location.search.
2. Passer window.location.href
Par exemple, si nous cliquons sur une liste, nous devons passer une chaîne à la page detail.html, puis à la page detail.html transmet les données interactives Ajax, chargeant le contenu de la page.
var index = "lemon"; var url = "receive.html?index="+index; $("#more").click(function(){ window.location.href = url; });
La page actuelle sera remplacée par la page recieve.html, et l'url de la page devient :
Ensuite, nous utilisons ensuite la méthode ci-dessus pour extraire les paramètres dont vous avez besoin
3. Via window.location.open
Si vous souhaitez ouvrir une nouvelle page au lieu de modifier la page actuelle, alors window.location. href n'est plus applicable. Pour le moment, nous devons utiliser window.location.open() pour réaliser
Une brève introduction à la fonction window.open() window.open(). a trois paramètres. Le premier Le premier paramètre est l'URL de la page à ouvrir, le deuxième paramètre est la cible de la fenêtre et le troisième paramètre est une chaîne spécifique et une valeur booléenne indiquant si la nouvelle page remplace la page actuellement chargée dans. l'historique du navigateur en passant uniquement le troisième paramètre d'un paramètre. Le deuxième paramètre peut également être un nom de fenêtre spécial tel que "_blank", "_self", "_parent", "_top". "_blank" ouvre une nouvelle fenêtre et "_self" obtient le même effet que window.location.href. .
Continuez l'exemple ci-dessus :
<script> var index = "lemon"; var url = "receive.html?index="+index; $("#more").click(function(){ window.open(url) }); </script>
De cette façon, lorsque vous cliquez dessus, une nouvelle page sera ouverte et l'adresse URL de la page est la même que ci-dessus.
En raison des restrictions de sécurité du navigateur, certains navigateurs ont ajouté des restrictions sur la configuration des fenêtres contextuelles. La plupart des navigateurs ont des programmes intégrés de blocage des fenêtres contextuelles. Par conséquent, les fenêtres contextuelles peuvent être bloquées. vous devez considérer deux possibilités. La première est que le programme de blocage intégré au navigateur bloque les fenêtres contextuelles, donc window.open() est susceptible de renvoyer Null. À ce stade, vous pouvez déterminer si la fenêtre contextuelle est bloquée. en surveillant la valeur renvoyée.
var newWin = window.open(url); if(newWin == null){ alert("弹窗被阻止"); }
L'autre est une fenêtre pop-up bloquée par une extension de navigateur ou un autre programme, puis window.open() renvoie généralement une erreur, par conséquent, pour détecter avec précision si la fenêtre pop-up est bloquée. , Lors de la détection de la valeur de retour, window.open() doit être encapsulé dans un bloc try-catch. Dans l'exemple ci-dessus, il peut être écrit sous la forme suivante :
<script> var blocked = false; try{ var index = "lemon"; var url = "receive.html?index="+index; $("#more").click(function(){ var newWin = window.open(url); if(newWin == null){ blocked = true; } }); } catch(ex){ block = true; } if(blocked){ alert("弹出窗口被阻止"); } </script>.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!