Не отвлекаясь на аргумент, давайте проанализируем ваш код и выясним, почему у вас могут возникнуть разочарования:
Вы вызываете $ .mobile.changePage с данными в виде строки URL-параметров? Если вы использовали объект и указали тип URL:
$.mobile.changePage('alert.html',
type: 'url',
data: {
alert_title: message.type,
alert_message: message.content
},
transition: 'pop',
role: 'dialog',
reloadPage: true
});
Теперь jQM безошибочно берет ваш объект данных и передает его в качестве параметров url в ваше диалоговое окно, если вы используете тип: 'POST', тогда он будет отправлять эти данные как переменные формы. Если вы использовали какой-либо серверный язык, вы можете аккуратно обрабатывать эти данные - очевидно, используя html, вы мало что можете сделать.
2. Под чистой обработкой данных я подразумеваю, что мы используем обработчик событий pageinit от jQM, я не уверен, на какие хаки вы ссылаетесь, но в любом случае на вашей странице вы прикрепите все необходимые данные к элементам DOM и сделаете ссылку на них в обработчик Pageinit. Я думаю, что это довольно чисто.
3. Поскольку вы передаете параметры URL на страницу HTML, я предполагаю, что вы не используете серверный язык, такой как PHP, Java, CF и т. Д.? Я думаю, что использование парсера JS src для параметров url - это скорее хак, чем использование правильного языка на стороне сервера. Если вы знаете какие-либо языки сервера, почему бы не использовать их? Вы можете вставлять передаваемые параметры прямо в строку, в диалоговом окне HTML - намного красивее, чем ваш метод. Итак, вы используете хак и жалуетесь, что ваш хак не работает в jQM, но правильные методы - это хаки? Или, может быть, вы думаете, что делаете это правильно, но написать немного PHP - слишком много работы?
Просто для справки, jQuery Mobile только загружает код между вашим div [data-role = "page"], то есть ваш JS в <head/>
не будет вставлен - вам нужно поместить это в div