Javascript 如何让我的脚本彼此交互?
我的网页加载后将运行以下脚本:Javascript 如何让我的脚本彼此交互?,javascript,jquery,Javascript,Jquery,我的网页加载后将运行以下脚本: $(function() { return $.ajax({ type: "get", dataType: "json", url: "/get_script", success: function(data, status, xhr) { return $("#myScript").html(data.myScript); } }); }); 该脚本从我的服务器获取另一个脚本(data.myScrip
$(function() {
return $.ajax({
type: "get",
dataType: "json",
url: "/get_script",
success: function(data, status, xhr) {
return $("#myScript").html(data.myScript);
}
});
});
该脚本从我的服务器获取另一个脚本(data.myScript
对象)。添加到我的网页的新脚本如下所示:
<script>
initScript = function() {
return window.random_string = Math.random().toString(36).substring(7);
};
$(window).bind("popstate", 'hashchange', function() {
return initScript();
});
window.random_string = null;
initScript();
</script>
initScript=函数(){
return window.random_string=Math.random().toString(36)子字符串(7);
};
$(window).bind(“popstate”,“hashchange”,function(){
返回initScript();
});
window.random_string=null;
initScript();
如果新脚本需要为网页上的其他脚本提供变量,我会将它们放在窗口中。my_variable
variable,但我希望能够调用例如MyScript.random_string
我还希望能够从其他脚本触发initScript
函数。例如MyScript.initScript()
如何实现这一点?首先,我建议使用
$.getScript
加载JS代码,假设您无法将其直接嵌入
标记中
为了解决您的实际问题,您只需要按照您需要的方式构建它。只需创建一个对象,如var MyScript={}代码>然后将所有函数和变量作为属性放置在该对象中,如下所示:
<script>
initScript = function() {
return window.random_string = Math.random().toString(36).substring(7);
};
$(window).bind("popstate", 'hashchange', function() {
return initScript();
});
window.random_string = null;
initScript();
</script>
$.getScript('/get_script',函数(){
//在此处加载脚本后将逻辑置于运行状态。。。
//请注意,您不再需要.html(data.myScript)
initScript();
log(MyScript.random_字符串);
});
//在外部脚本中:
var MyScript={
initScript=函数(){
this.random_string=Math.random();
},
随机_字符串:空;
}
首先,我建议使用$.getScript
加载JS代码,假设您不能将其直接嵌入
标记中。为了解决您的实际问题,您只需要按照您需要的方式构建它。只需创建一个对象,如var MyScript={}
然后将所有函数和变量作为属性放在该对象中谢谢@Rorymcrossan,但如果你能将上述内容作为答案,我将非常感谢。当然,我为你添加了它Hanks@Rorymcrossan,我正在尝试你的解决方案,我可以看到“/get_script”
的响应负载确实就是脚本。但是console.log(MyScript.random_字符串)代码>行并没有被触发,我把int放在那个里的其他东西也并没有被触发。我还尝试调用MyScript.random\u string代码>来自浏览器控制台,但这会引发引用错误:未定义MyScript
。外部脚本不需要以某种方式附加到文档中吗?