2017-07-21 5 views
0

同じホスト上でホストされている2つのサイトで、ディレクトリツリーをリンクするシンボリックリンクを持つことによってhtmlファイルを共有したいが、 window.location.hostnameを使用して適切なデータを取得し、そのデータに基づいて「ブランディングのカスタマイズ」を実行することができました。最も重要なのは、適切なサイトの連絡先データへの簡単なリンクです。だから、私はリンクとリンクされたテキストの両方を変更したい。onloadを介して実行されるJavaScript関数は、href属性を期待通りに更新していません

体内の"onload="のいずれかを使用して機能を実行するか、またはスクリプトレベルでwindow.onload=を入力するだけで問題はありません。

ファンクションは起動しますが、問題はありませんが、.setAttributeのターゲットがnullであることを応答し続けるため、更新するアイテムは更新されません。関数の実行は

function setContact() 
    { 
     // var ourURL = window.location.href; 
     var DN = window.location.hostname; 
     // if structure using DN to come up with the changes omitted 
     // "contactLnk" is both the name of the anchor and the name 
     // of the variable set by the if structure 
     var targetLink = document.getElementById("contactLnk"); 
     targetLink.setAttribute('href', contactLnk); 
    } 
    </script> 

とが、効果はありませんし、Javaスクリプトコンソールは言う:以下はその抜粋です

TypeError: targetLink is null 

私は正常に動作し、いくつかの類似しているが、異なるコードを持っていますが、それはすべてのものによって開始されていますマウスオーバーやオンクリックなど。

明らかに私は「間違っている」。 Insightはここ

に感謝コードは次のとおりです。

<html> 
<head> 
<title>Some Title</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body bgcolor="#AAD7B9" text="#000000" onload="setContact();"> 
    <script type = "text/javascript"> 
    function setContact() 
    { 
     var DN = window.location.hostname; 
     var targetLink = document.getElementById("contactLnk"); 
     targetLink.setAttribute('href', "http://"+DN+"/index.html"); 
    } 
    </script> 

<p> 
Nav section deleted in whole. Has nothing to do with it anyway. 
</p> 

<p> 
<a name="contactLnk" onload="setContact();" href="not.us">Some Link Text</a> 
</p> 

</body> 
</html> 
+0

このIDを持つ要素がないか、ページが完全に読み込まれる前にスクリプトが実行されていますか? –

+0

@ScottMarcusありがとうございますが、ここに著作権の問題があります。私は何かを模倣できると思う。たぶん基本的な言葉で説明するだけで十分でしょうか?それ以外の場合は、適切なものをハックアップするためにしばらく時間がかかります。要するに、開始HTMLタグがあり、次に頭部(完全)、そこにある残りの部分全体を包含する本体タグ、次に一連の関数のあとに

+3

いいえ、私達にコードを提示しなければなりません。そうでないと助けません。ちなみに、クライアント側のコードは、コンテンツのみがコピー可能ではありません。 –

答えて

1

あなたはgetElementByIdをで動作するようにHTML要素のidに名前を変更する必要があります。

<a id="contactLnk" onload="setContact();" href="not.us">Some Link Text</a> 

あなたが持っているとおり、idが "contactLnk"の要素はありません。

+0

同じ値のID属性を追加します。 – isherwood

+0

DOAH!それだった!私はそれが何か愚かでなければならないことを知っていた! :-) –

+0

@isherwood - true。しかし、人々は何とか名前を使用しますか?私はまだそれのための使用を見つける必要があります。 – AgapwIesu

関連する問題