2016-08-23 2 views
0

Я пытаюсь найти один параметр в строке запроса и обрабатывать две вещи. Пример URL - http://domainname.com?name=y&track=1&promo=trueПодсказка строки запроса Jquery и изменение выбрано Href

  1. Append эти строки запроса ко всем URL, на странице - это нормально я считаю.
  2. Измените URL-адрес href для URL-адресов, содержащих в нем определенную строку, а затем добавьте строку запроса. Эти href существуют по-разному, такие как тег href, onclick внутри тега изображения.

    <a href="http://externaldomain.com/?a=88">link</a>, <img src="a.jpg" onclick = document.location.href="http://externaldomain.com/?a=88" />

код до сих пор, чтобы сделать первое

var querystring = window.location.search.substring(0); 
var newurl = "http://changetothisdomain.com/"; //for second criteria 
jQuery(document).ready(function() { 
    jQuery('a[href]').attr('href', function(index, value) { 
    if ((querystring.indexOf("promo=true") > 0) && (value.indexOf('#') != 0)) { 
     return value + querystring; 
    } 
    }); 
}); 

У меня есть этот value.indexOf ('#')! = 0, так что URLs с # не изменяется, потому что это для вкладок jquery. Добавление к ним параметров влияет на это. Во-вторых, я хочу проверить, существует ли promo = true в querystring, а затем также проверить, имеет ли href «a = 88», затем измените href на «newurl» и добавьте querystring.

Спасибо!

+0

Я был на моем телефоне и попытался дать вам один сценарий, который является более общим, так что вы можете сделать 'если (getParm («promo») == «true» && getParm («a») == «88») 'Поскольку вы не использовали такой скрипт, я предположил, что вы его не нашли – mplungjan

+0

ok thanks. это было непонятно только с поисковой ссылкой, поэтому я ответил так. рассмотрит метод getparam. еще раз спасибо – Jay

ответ

0

Посмотрите на это - это было НЕ тривиальное

var querystring = "?blabla=bla&promo=true&bla=bla"; // window.location.search; 
 
var newurl = "http://changetothisdomain.com/"; //for second criteria 
 

 
function changeURL(value) { 
 
    if (value.indexOf('#') == 0) return value; 
 
    return (value.indexOf("a=88") == -1 ? value : newurl) + querystring; 
 
} 
 

 
function changeString(value) { 
 
    if (value.indexOf('#') == 0) return value; 
 
    var match = value.match(/href=([^"]*)/); 
 
    var url = (match.length > 0) ? match[1] : ""; 
 
    var replace = url.indexOf("a=88") == -1 ? url : newurl; 
 
    var qString = (replace.indexOf("?") !=-1)?querystring:"&"+querystring.substring(1); 
 
    if (url.indexOf("'") != -1) { 
 
    replace = replace.replace(/'/g, ""); 
 
    replace = "'" + replace + qString + "'"; 
 
    } else if (url.indexOf('"') != -1) { 
 
    replace = replace.replace(/"/g, ""); 
 
    replace = '"' + replace + qString + '"'; 
 
    } 
 
    return value.replace(url, replace); 
 
} 
 

 
$(function() { 
 
    if (querystring.indexOf("promo=true") != -1) { 
 
    $('a[href]').attr('href', function(index, value) { 
 
     return changeURL(value); 
 
    }); 
 
    $('img').attr('onclick', function(index, value) { 
 
     return changeString(value); 
 
    }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<a href="http://externaldomain.com/?href=true&a=88">link</a>, 
 
<img src="a.jpg" onclick="document.location.href='http://externaldomain.com/?img=true&a=88'" /> 
 
<a href="http://externaldomain.com/?href=true&a=89">link</a>, 
 
<img src="a.jpg" onclick="document.location.href='http://externaldomain.com/?img=true&a=88'" />

 Смежные вопросы

  • Нет связанных вопросов^_^