У меня есть смешной вопрос. Почему-то в браузере Safari Javascript Logic Gates работают неправильно. Вот разбивка:javascript не работает в сафари
Весь этот сценарий вызывается с $(#id).load(my/script.php)
функцией
Я создаю чистый vairable.
$perm = $_POST['permission']
.
создать HTML переменного
$html_content .= " <div id='bsid_$account_id' onclick="bsview(id)"></div>
Я присоединяюсь HTML-
<?=$html_content?>
основания разрешения Ai изменение функциональности функции bsview я применяюсь в моих делах.
if ("<?=$perm?>" != "user"){
function bsview(id) {
console.log('manager');
}
}else{
function bsview(id) {
console.log('user_view');
}
}
Затем происходит что-то смешное. После проверки в Chrome, IE и Firefox я подтверждаю, что код работает. Однако, когда я запускаю код в Safari, логический логический элемент, который должен возвращать «TRUE», это разрешение не равно «пользователю», а возвращает FALSE. Это код, отраженный в моей утилите отладки Safari.
if ("manager" !== "user"){
console.log('manager');
function bsview(id) {
console.log('manager');
}
}else{
function bsview(id) {
console.log('user_view');
}
}
</script>
И, конечно, утешать Logs 'users_view'
Ok. Если у кого-то есть понимание или критика за мой дрянной код, пожалуйста, пошлите им свой путь. Я хотел бы знать, почему это происходит, и как избежать этого самого.
Вы не можете условно определить объявления функций в JavaScript. Объявление функций добавляется в область содержимого, на которой определены оба ваших, но поскольку они имеют одно и то же имя, последнее имеет приоритет. Как показывает Barmar, вы можете использовать назначение функции. – jfriend00