我正在創建一個任何網站都可以嵌入並顯示的插件,與Disqus類似。我已經有了一個非常好的主意並且瞭解它在客戶端的工作方式,這要感謝這篇文章:How to make a javascript like Disqus or IntenseDebate。Java Spring return Javascript
所以我打算在客戶端使用的代碼與Disqus或谷歌分析類似:
<script type="text/javascript">
var user_id = 'anbmDj3ish43';
(function() {
var plug = document.createElement('script'); plug.type = 'text/javascript'; plug.async = true;
plug.src = 'http://www.example.com/user/' + user_id;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(plug);
})();
</script>
對於網站的插件顯示的將是不同的每一頁,所以我需要改變返回到頁面的JavaScript代碼內容(即必須更改注入的代碼,插件的設計等)。 由於應用程序的其餘部分使用這些技術,因此我使用JAVA和Spring框架作爲後端。
所以我的問題如下: 在我的彈簧控制器裏面,我需要做些什麼才能返回一個瀏覽器可以理解的javascript?或者,我也可能走錯了路,必須以不同的方式處理它?
下面是我第一次的猜測之一,但它發回text/plain的,它不是由瀏覽器的JavaScript理解..
@Controller
@RequestMapping(value = {"/user/"})
public class EmbedJavascriptController extends AbstractController{
@Autowired
private Service service;
@Transactional
@RequestMapping(value = "/{userId}", method = RequestMethod.GET, produces="text/javascript; charset=utf-8")
public String home(HttpServletRequest request,HttpSession session,
@PathVariable("userId") String userId) throws Exception {
return "console.log('I wanna load some scripts');";
}
}
任何幫助,將不勝感激:d
一般來說,'script'標記將會在你的HTML模板中,並且你會在'Model'中提供你需要的任何參數。 – chrylis 2014-11-05 06:38:59