В моем приложении Cordova для Android мне нужен встроенный JavaScript для доступа к локальному хранилищу. При тестировании я обнаружил, что не могу включить в свой раздел PHP любой выходной JavaScript, который будет работать. Даже добавление простого скрипта оповещения в начало файла PHP не отображается в браузере, хотя я вижу, что код есть в Chrome Dev Tools, Elements. Если я добавлю этот же скрипт в файл index.html приложения, он будет работать.
Кроме того, в разделе, созданном с помощью PHP, я динамически генерирую кнопки onClick, которые вызывают функцию JS, которая добавляет key-values
к * 1004. *. И они работают нормально. Я вижу записи в Chrome Dev Tools.
У меня есть мета Политики безопасности содержимого в index.html
, и я пробовал много комбинаций, хотя ошибок CSP
не было.
Я читал и пробовал предлагаемые исправления в течение нескольких дней.
Это работает:
Страница PHP:
echo ' <button id=';
echo "'$row1[idNodes]'";
echo ' class="buttonClass" type="button" value=';
echo "'$row1[idNodes]'";
echo ' onclick="setStorage(this.value)">';
echo '<div id=img';
echo "$row1[idNodes]";
echo '>';
echo '<img src=img/cards.png height=20 width=20>';
echo '</div>';
echo '</button> ';
внутри index.js:
function setStorage(val) {
document.addEventListener("deviceready", function(){
localStorage.setItem(val,"1");
}, false);
var imgswap = "img" + val;
console.log(imgswap);
document.getElementById(imgswap).innerHTML = "<img src=img/shovel.png height=25 width=25>";
}
Рендерится, если внутри страницы index.html
, но не внутри страницы php, которая при рендеринге представляет собой просто строку внутри самой html-страницы:
<script>
console.log('Test');
</script>
<?php ...
изображениевывод в браузере по адресу: untweeps.org/img/code.jpg В выводимом изображении браузера вы видите три сценария, но работает только один с Test1. Test3 генерируется динамически, остальные два статически закодированы.
Не получено никаких сообщений об ошибках в консоли Dev Tools. Я хочу иметь возможность читать значения локального хранилища с помощью JS и менять изображение, как в функции set, но пока не могу запустить простой скрипт. Чего мне не хватает?