2016-08-25 1 views
-1

Так как Firefox не может открывать ссылки на новой вкладке, если у них есть отклонение тега HREF-тега к функции, возможно, скрипт может быть использован для их преобразования; то есть к фактическому HREF.Сценарий, который преобразует все экземпляры определенного отфильтрованного выбора значений HREF в другое значение

Я могу видеть, что делает foo;

function foo(x) { self.location.href = 'page.asp?ID=' + x } 

Поэтому мне нужно изменить все экземпляры;

<a href="javascript:foo(12354)">

с;

<a href="page.asp?ID=12354"> 

где 12354 является переменной и только HREF теги, которые должны быть изменены те, которые взывают к функции Foo?

что-то типа;

var anchors = document.querySelectorAll('a'); 

for(var i=0;i<anchors.length;i++) 
{ 
    if(anchors[i].href includes 'foo' then 
    { 
     val1 = get the value within the parenthesis; i.e. 12354 
     anchors[i].href = "page.asp?ID=" + val1 
    } 

} 

ответ

1

Перечислите ссылки, которые имеют foo текст href атрибута, извлечь идентификатор и присвоить новое значение:

[].forEach.call(document.querySelectorAll('a[href^="javascript:foo"]'), function(a) { 
    var id = a.href.match(/\d+/)[0]; 
    a.setAttribute('href', 'page.asp?ID=' + id); 
}); 
+0

Спасибо, что является хорошей точкой падающей. Новое в JavaScript. – Terry

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