La variable jQuery redirige vers une URL non définie bien qu'il s'agisse d'une chaîne
P粉478188786
P粉478188786 2024-04-01 21:03:17
0
1
455

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 = urlwindow.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 ?

P粉478188786
P粉478188786

répondre à tous(1)
P粉448130258

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 attribut data-*, donc url est non défini. Il est attribué à div第二次调用该函数div 没有任何 data-* 属性,因此 url未定义。它被分配给 window.location.pathname et écrase l'affectation précédente.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal