Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dtadeu

Detesctar LINK em HTML

Recommended Posts

Pessoal, estou precisando detectar todos os links de uma página e adicionar uma variável no final de cada link.

 

Ex.

 

<%

 

table="<table width='100%' cellpadding='0' cellspacing='0' border='1'>"

table=table & "<tr>"

table=table & " <td>Link</td>"

table=table & " <td><a href='http://www.uol.com.br'>coca coca coca</a></td>"

table=table & "</tr>"

table=table & "<tr>"

table=table & " <td><a href='http://www.uol.com'>coca coca coca</a></td>"

table=table & " <td>Link 2</td>"

table=table & "</tr>"

table=table & "</table>"

 

'a idéia de encontrar todos os links que existem na string table e no final de cada link adicionar uma váriavel.

 

'ex. ?var=123

 

'Onde teriamos como resultado a seguinte string

 

table="<table width='100%' cellpadding='0' cellspacing='0' border='1'>"

table=table & "<tr>"

table=table & " <td>Link</td>"

table=table & " <td><a href='http://www.uol.com.br?var=123'>coca coca coca</a></td>"

table=table & "</tr>"

table=table & "<tr>"

table=table & " <td><a href='http://www.uol.com?var=123'>coca coca coca</a></td>"

table=table & " <td>Link 2</td>"

table=table & "</tr>"

table=table & "</table>"

 

'vale lembrar que não são links fixos, são link dinamicos, e que podem ter várias variáveis no mesmo.

 

'A idéia é detectar todos os links de uma determinada string e acrescentar uma váriavel no final de cada link

 

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi muito bem...

os links ou sao fixos ou dinamicos

o que você vai fazer é colocar as variaveis dinamicas?

 

http://www.uol.com.br -> ate esse ponto é fixo o resto vai ser dinamico

e isso?

 

a referencia vai vir de onde?

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce terá estes links em um DB?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi muito bem...

os links ou sao fixos ou dinamicos

o que você vai fazer é colocar as variaveis dinamicas?

 

http://www.uol.com.br -> ate esse ponto é fixo o resto vai ser dinamico

e isso?

 

a referencia vai vir de onde?

[]s

 

Vou carregar o conteúdo da variável de um arquivo html através do Scripting.FileSystemObject.

 

Set FSO = CreateObject("Scripting.FileSystemObject")

Set TextStream = FSO.OpenTextFile("teste.html", 1)

table = TextStream.ReadAll

TextStream.Close

 

 

 

Após carregar o conteúdo para variável table preciso detectar todos os links que podem ser 1 ou 1000, acrescentar ao final de cada link uma variável.

 

Lembrando que os links não seguem um padrão, não vem de um db e não tem limite de quantidade de links.

 

A idéia e manipular arquivos que já existem, acrescentando apenas uma variável a cada link.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se os links nao vem de um banco como você vai relacionar com a variavel?

 

se viesse de um bd poderia ser

conexao...

link&var

 

nao sendo assim acho que teria que ser na maos mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detectar tem como com javascript, porém adicionar algo depois dos links eu nao sei.

 

com javascript é document.getElementsByTagName('a')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o Custelinha falou isso acho que você só vai conseguir via JS com DOM, cole o código em um arquivo novo e veja como funciona, veja se lhe ajuda.

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function pegarLinks()
{
	// o comando abaixo cria um array com todos os nodes do elemento pesquisado
	var links = document.getElementsByTagName("a");
	// tamnho do array links
	var tam_links = links.length;
	// Percorrendo o array e verificando e alterando seu atributo
	for (var i = 0; i < tam_links; i++)
	{
		alert("Link antigo: " + links[i].getAttribute("href"));
		var attrlink = links[i].getAttribute("href");
		var new_attr = attrlink + "pagina.asp?varteste=estevam";
		links[i].setAttribute("href", new_attr);
		alert("Link novo: " + links[i].getAttribute("href"));
	}
}
</script>
</head>
<body>
<a href="http://www.meulink1.com.br"> teste1</a>
<br />
<a href="http://www.meulink2.com.br">teste2</a>
<br  />
<input type="button" value="teste" onclick="pegarLinks();"/>
</body>
</html>

Abraços

 

Estevam

Compartilhar este post


Link para o post
Compartilhar em outros sites

É pessoal, parece mais complicado ainda..

Não posso utilizar javascript pois os arquivos são executados localmente, se adicionar o javascript toda hora que um arquivo for aberto o browser vai ficar alertando o usuário informando que o arquivo tem um script que pode danificar o sistema bla bla bla...

 

A situação é a seguinte,

Tenho uma estrutura com milhares de arquivos em html que possuem N links.

Esses arquivos são organizados por um sistema asp ( Intranet ) um catalogo que peças de uma concessionárias, a cada alteração dos lotes temos que adicionar um variável de controle nesses arquivos, porém o usuário não altera o conteúdo ele pode gerenciar operações básicas, excluir, cadastrar, alterar tudo através de webforms. Mensalmente são gerados cd's com conteúdo e enviado para as distribuidoras, onde encontramos todos os tipos de computadores (Pentium 233, em alguns casos até 486. - grande vilão dos scripts js.)

 

Mediante a tal situação preciso gerar arquivos html básicos.

 

 

Valeuuu pela força galera.

[]'s

Coca

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem essa funcao aqui que eu peguei um tempo, serve pra "linkar os links" dentro de um texto

se nao me engano ele ta funcionando corretamente, teste ai primeiro pra ver se se adaptaria ao seu caso

 

BBCodeToHTML = strString & sua-varriavel

 

 

Function ReplaceRegExp(strString, strPattern, strReplace)

	Dim RE: Set RE = New RegExp

	With RE
		.Pattern = strPattern
		.Global = True
		ReplaceRegExp = .Replace(strString, strReplace)
	End With
	
End Function

Function BBCodeToHTML(strString)
	strString = ReplaceRegExp(strString, "(http|https)(:\/\/[\w\-_]+)((\.[\w\-_]+)+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?", "<a href=""$1$2$3$5"" target=""_blank"">$1$2$3$5</a>")
	BBCodeToHTML = strString
End Function

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem essa funcao aqui que eu peguei um tempo, serve pra "linkar os links" dentro de um texto

se nao me engano ele ta funcionando corretamente, teste ai primeiro pra ver se se adaptaria ao seu caso

 

BBCodeToHTML = strString & sua-varriavel

 

 

Function ReplaceRegExp(strString, strPattern, strReplace)

	Dim RE: Set RE = New RegExp

	With RE
		.Pattern = strPattern
		.Global = True
		ReplaceRegExp = .Replace(strString, strReplace)
	End With
	
End Function

Function BBCodeToHTML(strString)
	strString = ReplaceRegExp(strString, "(http|https)(:\/\/[\w\-_]+)((\.[\w\-_]+)+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?", "<a href=""$1$2$3$5"" target=""_blank"">$1$2$3$5</a>")
	BBCodeToHTML = strString
End Function

[]s

 

Grande desisto!!!

Essa mesmo, expressões Regulares, com essa função vou conseguir!!

Como você falou vou ter que alterar a mesma, mas com certeza vai dar certo!!!

 

valeu brother!!

Assim que alterar ela vou posta aqui...

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrei dela agora, tava esquecida aqui no meio de umas paginas :)

tomara que sirva, acho que nao vai ser tao dificil alterar nao

ela acha o link e pow, variavel no final

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.