Гиперссылка, маскирующаяся под нежелательного родственника - PullRequest
2 голосов
/ 04 января 2012

У меня странная ошибка, и я в тупике.

На моей веб-странице у меня есть

<a href="www.purple.com">Purple</a>

, но при нажатии она ведет себя как

<a href="http://mydomain.com/www.purple.com">Purple</a>

Однако, когда я смотрю на источник, он такой, каким должен быть.Ссылки добавляются динамически в приложении чата с использованием синтаксиса уценки.Поэтому это не простое решение добавления http: // ко всему.Есть ли другой способ исправить это?

РЕДАКТИРОВАТЬ

Мне удалось взломать его, используя JavaScript replace (), чтобы добавить в http: //в начале каждой ссылки, но мне все еще интересно, есть ли более простое, более изящное решение.

msg = msg.replace(/href="/ig, 'href="http://').replace(/http:\/\/http:\/\//ig, 'http://')

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Если вы не добавите http:// для своих внешних ссылок, они будут обрабатываться как ссылки с самого вашего домена - относительно пути, где находится вызывающий документ, или пути, указанного в вашей базовой ссылке.

0 голосов
/ 04 января 2012

Предполагая, что вы не можете редактировать или устранять неполадки синтаксиса уценки (это ... очевидно, генерирует строку в первую очередь), вы можете использовать jQuery, чтобы поместить пластырь в исправление.Опять же, это на самом деле не является предпочтительным ...

$("a[href*='http://mydomain.com/www']").each(function(i, el){
    //this will iterate through all links with an href
    //value that contains the above string 'http://mydomain.com/www'

    var old_url = $(el).attr('href');
    var new_url = old_url.split('http://mydomain.com/')[1]; //split up the url, and correct the mistake

    $(el).attr('href', new_url);//re-apply the href attribute to the element
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...