我在JS中有这个脚本,它使用URL参数进行图像定位,当图像与下面的脚本位于同一个地方时,它可以正常工作
<iframe src="pan.htm?image=img1.jpg" ></iframe>
但我需要它来从其他位置获取图像,我该怎么做我尝试了下面的方式,但它不能这样工作(网址只是一个例子)
<iframe src="pan.htm?image=http://someaddress.com/img1.jpg" ></iframe>
答案 0 :(得分:1)
您需要对网址进行编码。您可以通过运行此脚本来执行此操作:
prompt('Here is your completed code:',encodeURIComponent(prompt('Enter the url to encode','')));
您可以在此处试用: http://jsfiddle.net/zenr8/
脚本为您提供的编码URL是您需要输入URL参数的内容。在您的情况下,iframe将如下所示:
<iframe src="pan.htm?image=http%3A%2F%2Fsomeaddress.com%2Fimg1.jpg" ></iframe>
如果您需要在脚本的URL参数中输入内容,则应始终确保它已正确编码。您可以使用encodeURIComponent
执行此操作。如果您需要对其进行解码以便在脚本中进一步使用,请再次使用decodeURIComponent
。例如:
alert(encodeURIComponent('http://google.com/?hl=en&q=search'));
//alerts http%3A%2F%2Fgoogle.com%2F%3Fhl%3Den%26q%3Dsearch
alert(decodeURIComponent('http%3A%2F%2Fgoogle.com%2F%3Fhl%3Den%26q%3Dsearch'));
//alerts http://google.com/?hl=en&q=search
答案 1 :(得分:1)
您需要对参数进行urlencode。
<iframe src="pan.htm?image=http%3A%2F%2Fsomeaddress.com%2Fimg1.jpg" ></iframe>
这可以使用php完成,例如:
<iframe src="pan.htm?image=<?php echo urlencode("http://someaddress.com/img1.jpg"); ?>" ></iframe>
var iframe = document.createElement("iframe");
iframe.setAttribute("src","pan.htm?image="+encodeURIComponent("http://someaddress.com/img1.jpg"));
var wrapper = document.getElementById("iframe_wrapper");
wrapper.appendChild(iframe);