使用特殊字符Javascript编码URL

时间:2016-04-22 22:45:13

标签: javascript

首先,我想说我是Javascript的新手,我只知道HTML // CSS。我目前正在使用Adfly的API为人们缩短代表我的链接,我写了一些Javascript来使用一些html,但我想知道如何在Adfly&#39之前对URL进行编码; s API使用它。由于其中的特殊字符数量,它需要编码,我知道有多种方式,如:

encodeURIcomponent()
encodeURL()
escape()

在他们之间他们做我需要的角色,但他们都没有单独做我需要的角色,我也不确定如何将它们用于我已经拥有的javascript。

这是我目前正在使用的代码:

使用Javascript:

<script>
function process()
{
var url="https://api.adf.ly/stxt/API Key/" + document.getElementById("url").value;
window.open(url, "_blank");
}
</script>

HTML:

<input type="text" id="url">
<br>
<button>Go</button>

此问题也没有必要,但是可以在iframe中打开窗口吗?

编辑:

我设法将API生成的链接在iframe中打开,但这不是我的主要问题,但我会将代码放在下面,以便将来人们可以使用它。

<script>
function process()
{
var url="https://api.adf.ly/stxt/API Key/" + document.getElementById("url").value;
window.open(url, "openlink");
}
</script>

<input type="text" id="url">
<br>
<button>Go</button>
<iframe id="openlink"></iframe>

1 个答案:

答案 0 :(得分:0)

您应该调用encodeURIComponent以防止处理输入值中的任何特殊字符。所以它应该是:

var url="http://api.adf.ly/stxt/API Key/" + enodeURIComponent(document.getElementById("url").value);

如果您希望它位于弹出窗口中的iframe中,则需要将包含<iframe>元素的HTML写入窗口。

var w = window.open("", "_blank");
w.document.write("<html><body><iframe src='" + url + "'></body></html>");

如果您希望它在当前文档中的iframe中,您可以将其添加到HTML中:

<div id="iframe-container"></div>

并使用此Javascript:

document.getElementById("iframe-container").innerHTML = "<iframe src='" + url + "'>"