Отправьте параметры в локальный файл в UIWebView

Если это - XHTML, Ваш пример, Вам нужно только simpleXML.

<?php
$input = '<img src="/image/fluffybunny.jpg" title="Harvey the bunny" alt="a cute little fluffy bunny"/>';
$sx = simplexml_load_string($input);
var_dump($sx);
?>

Вывод:

object(SimpleXMLElement)#1 (1) {
  ["@attributes"]=>
  array(3) {
    ["src"]=>
    string(22) "/image/fluffybunny.jpg"
    ["title"]=>
    string(16) "Harvey the bunny"
    ["alt"]=>
    string(26) "a cute little fluffy bunny"
  }
}
11
задан Srikar Appalaraju 6 December 2012 в 16:05
поделиться

4 ответа

Вы загружаете HTML-код из собственного пакета, что означает, что вы полностью контролируете его. Почему бы просто не параметризовать HTML нужными полями. Вы можете легко добавить некоторые скрытые поля ввода, к которым затем сможет получить доступ ваш javascript. Допустим, ваш HTML-код выглядит так:

<body>
<form>
Static Field 1: <input type="text" name="field1"><br>
Static Field 2: <input type="text" name="field2"><br>
%@
</form>
</body>

Теперь просто прочтите эти данные в строку и отформатируйте% @ с некоторыми скрытыми полями, например:

NSString *input = @"<input type=\"hidden\" name=\"field3\"><br>";
NSString *formatted = [NSString stringWithFormat:html, input];

Затем вызовите -loadHTMLString: в веб-просмотре.

[webView loadHTMLString:formatted baseURL:nil];

Есть ли у вас какая-либо причина не мог этого сделать. Теперь ваш javascript может получить значение скрытого поля ввода с помощью вызова:

document.getElementsByName('field3')[0].value;
4
ответ дан 3 December 2019 в 01:20
поделиться

Нет, к сожалению, нет.

Вы можете обойти это, задав переменные и вызывая функции / методы в JavaScript, используя UIWebView: stringByEvaluatingJavaScriptFromString:

2
ответ дан 3 December 2019 в 01:20
поделиться

Вы можете вставить в свой локальный html-файл javascript для анализа GET-запроса

<script language="javascript">
function getget(name) {
        var q = document.location.search;
        var i = q.indexOf(name + '=');

        if (i == -1) {
            return false;
        }

        var r = q.substr(i + name.length + 1, q.length - i - name.length - 1);

        i = r.indexOf('&');

        if (i != -1) {
            r = r.substr(0, i);
        }

        return r.replace(/\+/g, ' ');
    }
</script>

Используйте getget ('имя_параметра') для получения параметра из строки запроса.

3
ответ дан 3 December 2019 в 01:20
поделиться

Теги хранятся в каталоге в .hgtags - то есть в рабочей копии, а не в локальном «репозитории». Поскольку все удаленные операции происходят в удаленном репозитории, а не удаленной рабочей копии, нет способа удаленно перечислять теги.

В сущности .hgtags просто дает сочетания удобные имена, теги не имеют ничего общего с метаданными репозиториями или контролем версий.

Обратите внимание, что дизайнерская философия Mercurial заключается в том, что она должна быть масштабирована; Для того, чтобы распределенная система управления версией должна быть масштабируемой «тяжелой работой», должна быть сделана на машине, которая инициировала команду, поэтому вы должны сначала получить клон, чтобы сделать что-либо сложное.


Редактировать: Как отмечает Том Андерсон (см. Комментарии), теги на самом деле являются объединением тех, кто определяется в файлах .hgtags во всех редакциях головы, что делает его еще сложнее.

-121--2397699-

Затем вызовите -OldHtmlString: в веб-просмотре.

Я считаю, что он избегал использовать LoadHTMLString вместо Loadrequest, потому что он нарушает кнопки назад и передние кнопки UIWEBVIEW

0
ответ дан 3 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: