通过URL将用户所在的URL提交到另一个进程的最简洁,最短的Javascript是什么?
时间:2020-03-05 18:50:49 来源:igfitidea点击:
像Delicious提交书签一样,我希望有一些标准的JavaScript,可以通过URL用来将任何访问的URL提交给第三方网站。有什么建议吗?
例如,我一直在使用
javascript:void(location.href="http://www.yacktrack.com/home?query="+encodeURI(location.href))
到目前为止,但想知道是否可以使用一些更复杂的方法或者更好的实践方法。
解决方案
回答
document.location = "http://url_submitting_to.com?query_string_param=" + window.location;
回答
我们是否需要与Delicious书签一样的东西(例如,用户主动单击以提交URL的东西)?如果是这样,我们可能只需复制他们的代码并替换目标URL:
javascript:(function(){ location.href='http://example.com/your-script.php?url='+ encodeURIComponent(window.location.href)+ '&title='+encodeURIComponent(document.title) })()
我们可能需要更改查询字符串名称等,以匹配脚本的期望。
如果我们想通过网站自动跟踪用户,则可能无法实现。我们需要使用AJAX请求URL,但是Web浏览器不允许Javascript在原始域之外发出请求。也许使用iframe骗术是可能的。
编辑:约翰击败了我。
回答
另一个选择是这样的:
<form action="http://www.yacktrack.com/home" method="get" name="f"> <input type="hidden" name="query" /> </form>
那么JavaScript将是:
f.query.value=location.href; f.submit();
或者我们可以将[保存链接]与提交结合在一起,如下所示:
<form action="http://www.yacktrack.com/home" method="get" name="f" onsubmit="f.query.value=location.href;"> <input type="hidden" name="query" /> <input type="submit" name="Save Link" /> </form>
并且如果我们正在运行服务器端代码,则可以插入该位置,以便无需使用JavaScript:
<form action="http://www.yacktrack.com/home" method="get" name="f"> <input type="hidden" name="query" value="<%=Response.Url%>" /> <input type="submit" name="Save Link" /> </form>