J'ai du mal à essayer de rediriger vers une nouvelle URL à l'aide de jQuery, mais cela ne fonctionne pas dans ce cas spécifique. J'utilise jQuery avec le backlog HTML et Django, mais je ne pense pas qu'aucun de ces éléments provoque l'affichage des paramètres non définis. Le code est assez simple :
$(document).on('click', '.view-diagnostics', function(){ let url = $(this).data("href"); window.location.pathname = url; })
L'élément html cliqué est le suivant :
<td> <div class="view-diagnostics"> <button class="button h-btn view-diagnostics" data-href="{% url "internet:diagnose" %}">{% trans "View diagnostics"%} </button> </div> </td>
Dans ce cas, je peux utiliser console.log(url)
记录 URL 并获取 "/something/something/"
形式的字符串,我可以使用浏览器中的检查工具使用断点来查看该 URL 确实包含正确的 URL,并且我可以获得 URL 的类型,它是一个字符串。然而,当我单击执行此代码的按钮时,该站点会重定向到 http://127.0.0.1:8000/undefined
(j'utilise un serveur local), donc d'une manière ou d'une autre, l'URL n'est plus définie.
J'ai essayé de nombreuses façons différentes de procéder, notamment en essayant toutes les méthodes de redirection vers une nouvelle URL, y compris window.location = url
、window.location.href = url
, mais elle apparaît toujours comme indéfinie. J'ai également essayé d'imprimer le contenu et le type de l'URL et tout semble bien. Le plus bizarre pour moi, c'est que si je change le code en
$(document).on('click', '.view-diagnostics', function(){ let url = $(this).data("href"); url = "/something/something/" window.location.pathname = url; })
Même si je copie et colle l'URL du résultat console.log() de la première ligne d'URL let, le code redirige correctement vers la bonne URL.
Pour résumer le problème : il y a un bouton qui contient data-href
包中的 URL。单击按钮时,我会在 jQuery 中获取 URL,并将其保存为 URL。我现在可以使用 console.log()
记录 URL 并获取类型,然后我得到 URL 和我期望的类型(字符串)。当我尝试重定向到此 URL 时,出现错误,无法重定向到 URL http://127.0.0.1:8000/undefined
. Lorsque j'ai codé en dur l'URL dans une chaîne copiée-collée à partir d'un test de journalisation antérieur, la redirection a soudainement fonctionné.
Est-ce que quelqu'un sait quoi d'autre je peux essayer pour résoudre ce problème ?
Votre sélecteur
.view-diagnostics
匹配两个 元素。按钮
和div
.Appelez votre fonction pour le bouton et attribuez la valeur souhaitée à
window.location.pathname
.L'événement remonte ensuite jusqu'au
div
et appelle la fonction une seconde fois.div
n'a aucun attributdata-*
, doncurl
estnon défini
. Il est attribué àdiv
并第二次调用该函数。div
没有任何data-*
属性,因此url
是未定义
。它被分配给window.location.pathname
et écrase l'affectation précédente.