如何获取javascript小部件嵌入页面的url

如何获取javascript小部件嵌入页面的url,javascript,widget,Javascript,Widget,(重新编写问题,因为几乎没有其他观点) 我想建立一个小部件,其他人可以包括在他们的网站上,小部件本身将托管在我的网站上。我知道只有一种方法可以构建可以嵌入到其他网站上的小部件:希望嵌入小部件的网站从我的网站上获取javascript,它在页面上执行“document.write”。比如: <script language="javascript" src="http://www.my-website-that-will-host-the-widget.com/javascript-emit

(重新编写问题,因为几乎没有其他观点)

我想建立一个小部件,其他人可以包括在他们的网站上,小部件本身将托管在我的网站上。我知道只有一种方法可以构建可以嵌入到其他网站上的小部件:希望嵌入小部件的网站从我的网站上获取javascript,它在页面上执行“document.write”。比如:

<script language="javascript" src="http://www.my-website-that-will-host-the-widget.com/javascript-emitter.php?id=1234&width=200&bordercolor=000000&bg=ffffff&textcolor=000000"></script> 

现在,我想让一个特定的小部件只能从特定的域访问。为此,我想知道可靠嵌入我的小部件的页面的URL。任何人都不应该欺骗它。例如,如果我在嵌入代码中有一个显式变量,人们可以更改它

我该怎么做?(我还希望为嵌入我的小部件的人编写最少的代码)

问候,

太平绅士


解释1:

假设我想这样做:如果小部件是从1.com访问的,则显示A,否则显示B。我如何可靠地做到这一点。问题是,“A”是一些不应该在代码中可见的东西,除非从1.com访问小部件。(因此,如果它嵌入在2.com中,我不想输出if(location.href==1.com)write(A)else write(B)


注1:


(顺便说一句,如果有人觉得我的方法不好/效率不高,可以建议更好的方法/教程等,那将是很大的帮助。大多数谷歌查询都会给你一些网站,解释如何为“你的网站”构建/获取小部件..通常指向允许您构建托管小部件的网站,我想了解如何构建可由其他网站从我的网站嵌入的小部件)

在客户端的javascript中,您可以使用
location.href
获取当前页面的url:

var url = location.href;
如果您根本不想为禁止的域输出任何javascript,则可以在php中使用全局变量
$HTTP\u REFERER
检查HTTP\u REFERER头。在javascript-emitter.php脚本中,尝试以下操作:

<?php 
echo $HTTP_REFERER; 
?> 

但是,请注意,这并不总是值得信任的:这取决于客户端(浏览器)当然,如果有人真的想在他们的站点上包含你的小部件,他们可以很容易地请求你的javascript服务器端欺骗REFERER头,将其设置为你的白名单上的某个内容,然后再转发给客户端


简而言之,您无法轻松、绝对地阻止黑名单站点使用您的小部件。

但是,我想“发出”与页面对应的javascript。(我的javascript是由php脚本发出的)。您想在客户端还是服务器端进行URL验证/身份验证?如果您的问题被标记为“javascript”我假设是前者。我很困惑。假设我想这样做:如果小部件是从1.com访问的,显示A,否则显示B。我如何可靠地做到这一点。问题是,“A”在代码中不应该可见,除非小部件是从1.com访问的。(因此,如果它嵌入在2.com中,我不想输出If(location.href==1.com)写(A)或写(B)。@jp19-看我的修正答案。好的。这就是我想知道的。谢谢