Как я программно нажимаю на ссылку с JavaScript?

Мой тестовый код:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 20, 200, 72);
UIImage *image = [UIImage imageNamed:@"rob.png"];
[button setImage:image forState:UIControlStateNormal];
button.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
[button setTitle:@"Hello" forState:UIControlStateNormal];
button.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[self.view addSubview:button];

Обратите внимание, что я установил button.contentHorizontalAlignment, а не button.titleLabel.textAlignment. Мой результат:

Screen shot of label

162
задан Mahdi Alkhatib 4 August 2016 в 15:10
поделиться

6 ответов

Эта функция работает как минимум в Firefox и Internet Explorer. Он запускает любые обработчики событий, прикрепленные к ссылке, и загружает связанную страницу, если обработчики событий не отменяют действие по умолчанию.

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}
45
ответ дан 23 November 2019 в 21:21
поделиться

Если вы хотите изменить только текущий адрес страницы, вы можете сделать это, просто сделав это в Javascript:

location.href = "http://www.example.com/test";
38
ответ дан 23 November 2019 в 21:21
поделиться

Просто так:

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

или при загрузке страницы:

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>
14
ответ дан 23 November 2019 в 21:21
поделиться

Вы не можете заставить мышь пользователя делать что-либо. Но у вас есть полный контроль над тем, что происходит при срабатывании события.

Что вы можете сделать, так это нажать на нагрузку на тело. В W3Schools есть пример здесь.

-2
ответ дан 23 November 2019 в 21:21
поделиться

Можете ли вы вместо щелчка перенаправить URL-адрес, на который будет выполнен щелчок, с помощью Javascript?

Может быть, вы могли бы положить что-нибудь в тело onLoad, чтобы ехать куда хотите.

1
ответ дан 23 November 2019 в 21:21
поделиться

Вы можете просто перенаправить их на другую страницу. На самом деле заставить его буквально щелкнуть ссылку и перейти к нему кажется нелепым, но я не знаю всей истории.

2
ответ дан 23 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

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