программно созданный выбор в javascript не отображается на IOS (ios 12) - PullRequest
0 голосов
/ 09 февраля 2019

Я создал тестовую страницу, на которой для загрузки выбран первый тег p "TEST" (выделен).Перейдите на эту страницу (http://thex.me/T/), и вы увидите, что она работает. Нажмите кнопку «Тест», и второй P-тег «TSET2» будет выделен (выделено). Теперь попробуйте эту страницу на любом устройстве IOS, а подсветка отсутствует.onload! Теперь нажмите кнопку, и второй тег P также не будет выделен! (Это забавный бит) Теперь нажмите и удерживайте кнопку «TEST», создайте выделение (выделите), а затем нажмите кнопку ... Его там!

Может кто-нибудь сказать мне, если я что-то упускаю, когда вы программно создаете диапазон. При длительном нажатии происходит что-то, что заставляет его отображаться?

Я знаю, что выбор сделанпри загрузке на устройствах IOS, потому что, когда я пытаюсь window.getselection (). toString (), он возвращает TEST, и если вы обновляете страницу, вы не можете долго нажимать на «Test», потому что вы не можете выделить то, что уже выделено.

function Test(name)
{
    var TestRange = new Range;
    var el = document.getElementById(name);
    TestRange = document.createRange();
    TestRange.setStart(el,0);
    TestRange.setEnd(el,1);
    window.getSelection().removeAllRanges();
    window.document.getSelection().addRange(TestRange)
}


document.body.onload = function(e) {
    Test("a");
}

индексная страница:

<html>
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1">     
</head>

<body>
<p id = "a"> TEST</p>
<p id = "b"> TSET2</p>
<button onclick="Test('b')">TEST</button>
    <script src="script.js"></script>
</body>

</html>

При загрузке на странице IOS должна отображаться страница с выбранным «TEST» (выделенным) и двумя «lolly pop»с "по обе стороны.Как и на любом другом устройстве.

...