Функция говорит, что она не определена, хотя она определенно определена (html / javascript) - PullRequest
0 голосов
/ 07 февраля 2020

Итак, я делаю кнопку, которая перенаправляет людей на веб-сайт, но 1 человек находится в списке банов, поэтому я сделал эту кнопку, и вот код:

<button onclick="myFunction()">Go</button>
<script>
    function myFunction() {
        var person = prompt("Please enter your first name:", "");
        if (person == null || person == "") {
            myFunction();
        } else {
            if (person == "Sochima" || person == "sochima") {
                alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
                document.cookie = "sochima=1";
            }
        }
    }

    var u = getcookie(sochima)
    if u == 1 {
        alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
    }

    function getCookie(name) {
        var value = "; " + document.cookie;
        var parts = value.split("; " + name + "=");
        if (parts.length == 2) return parts.pop().split(";").shift();
    }
</script>

Теперь это кажется вроде бы все будет нормально, верно? Ну, неправильно, он говорит, что «моя функция не определена». Какая? Кто может объяснить это мне? Почему это не работает? Это из-за файлов cookie или всплывающих окон? Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 февраля 2020

Вот фрагмент рабочего кода вашей проблемы, в вашем коде много опечаток (упомянуто в комментариях), фрагмент не будет работать, потому что фрагменты SO помещены в «песочницу» и JS не может получить доступ к файлам cookie, но должен работать нормально на твоей машине.

function getcookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function myFunction() {
    var person = prompt("Please enter your first name:", "");
    if (person == null || person == "") {
        {
            {
                /* myFunction(); */ }
        }
    } else {
        if (person == "Sochima" || person == "sochima") {
            alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
            document.cookie = "sochima=1";
        }
    }
}

var u = getcookie('sochima')
if (u == 1) {
    alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
}

function getCookie(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length == 2) return parts.pop().split(";").shift();
}
<button onclick="myFunction()">Go</button>
0 голосов
/ 07 февраля 2020

Оказывается, это были опечатки. Спасибо за исправление!

0 голосов
/ 07 февраля 2020

У вас есть некоторые опечатки. Это должно выглядеть так

1002 *
<button onclick="myFunction()">Go</button>
<script>
function myFunction() {
	var person = prompt("Please enter your first name:", "");
	if (person == null || person == "") {
		myFunction();
	} else {
		if (person == "Sochima" || person == "sochima") {
			alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
			document.cookie = "sochima=1";
		}
	}
}

var u = getCookie("sochima");
if (u == 1) {
	alert("Error 065 at runtime 24: Function Redirect was referred to, but was never defined");
}

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

</script>
...