Функция обмена Javascript не работает в меню выбора на мобильном телефоне - PullRequest
2 голосов
/ 14 октября 2019
            <script type="text/javascript"> 
            var urlmenu = document.getElementById( "rpdropdown3" );
            urlmenu.remove(1);
            urlmenu.onchange = function() {
            window.open( this.options[ this.selectedIndex ].value, "_blank" );
            var options = rpdropdown3.options;
                // Look for a default selected option
                for (var i=0, iLen=options.length; i<iLen; i++) {

                    if (options[i].defaultSelected) {
                        rpdropdown3.selectedIndex = i;
                        return;
                    }                                                 
                }

                // If no option is the default, select first or none as appropriate
                selectElement.selectedIndex = 0; // or -1 for no option selected
            };

            </script>';

$postslist = get_posts( $args );
    foreach( $postslist as $posts ){
        $string .= '<option value="' . get_the_permalink($posts) . '">-- '  .get_the_title($posts).'</option> ';
    }

Не работает ни в одном мобильном браузере (работает в браузерах компьютеров), выпадающий список не открывает ссылку, как ожидалось

1 Ответ

0 голосов
/ 15 октября 2019

Кажется, что это на самом деле работает, но заблокировано как всплывающее окно. Вы не можете использовать window.open, если он не запущен действием пользователя, например кнопкой или ссылкой.

foreach ($postslist as $posts) { ?>
    <select id="rpdropdown" onchange="if (this.value) window.location.href=this.value">
        <option value="" selected disabled>OPTION 1</option>
        <option value="<?php echo get_the_permalink($posts) ?>" onchange="window.open (this.value)"> -- <?php echo get_the_title($posts) ?></option>
    </select>

<?php }

В моем случае я использовал onchange = "if (this.value)window.location.href = this.value ", и я пытаюсь открыть его в новой вкладке.

Они обсуждают эту проблему здесь и в других публикациях: окно javascript.открыто в сафари

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...