2017-07-26 2 views
1

外部リソースからDOMで実行/ロードする必要のあるトラッカーのURLを取得しますが、#を含むURLは後で切り捨てられます私が何をしようとも、ポンド記号。私はこれらのURLを管理していないので、彼らはそれを変更せずにこのURLを読み込むことができるようにしたい。 例のURL:http://www.example.com/resource.js?param1=testvalueDOM内に挿入するとシャープ記号(ハッシュタグ)付きのスクリプトURLが切断される

私は上記URLを除き、すべてのケースで作品を共有しているコードを:http://www.example.com/resource.js?param1=testvalue#a=b&c=d&f=g&js=.js
には、このURLの変更を実行します。私も試してみました何

$('#myElement').append('<SCRIPT language="JavaScript1.1" SRC="' + url + '"></SCRIPT>') 

オリジナルコード

var s = document.createElement("script") 
s.type = "text/javascript" 
s.src = url 
$('#myElement')[0].appendChild(s) 

と子を追加すると、他のバリエーション、私も画像要素として挿入しようとしましたが、それはしませんでしたいずれかの作業。私はこの上で見つけることができる

唯一の他のポストは、ブラウザがこの(jQuery Ajax Call on URL with Pound (Number) Sign)を行いますことを示唆している...だから何

+0

"#"をパラメータとして渡したいですか? –

+0

それは本当に、私はちょうどそれを変更せずにそのURLを実行できるようにしたいです。 –

+1

クエリ文字列内の特殊文字をエスケープする必要があります。フラグメント識別子( '#'の後ろにあるもの)は、ブラウザによってサーバに送られません。 https://en.wikipedia.org/wiki/Percent-encoding – DarthJDG

答えて

1

...論理的なようだが、同社では、我々はこの会社の最初のクライアントじゃありませんあなたは、ブラウザに生のパラメータを解釈させないように、URLをエンコードする必要があります。あなたはこのポストEncode URL in JavaScript?を見ることができます。そして、なぜあなたがそれをする必要があるのか​​を理解するために、ドキュメントをちょっと調べてみてください(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)。したがって、encodeURIComponent(url)にリダイレクトするか、パラメータ(link + encodeURIComponent(params))を追加する必要があります。

+0

ありがとう、これは確かにそれを修正したでしょう。もう少し往復した後、サードパーティは#をaに置き換えてもOKでしたが、それ以前には動作しませんでした。私はクライアントと顧客の両方と一緒に作業するのを止めることができるかどうか尋ねましたが、お金... ;) –

関連する問題