通过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>