JavaScript的window.location调用迷路了吗?
我在一些代码上遇到了一些麻烦。 我有一个函数可以为某些数据执行一些操作,调用远程系统(激活该系统上的脚本并传入数据),然后再调用同一个系统来激活不同的脚本(它对数据起作用保存在上面)。 问题是第一次调用远程系统似乎在执行过程中丢失了。
这是在Safari中运行,使用jQuery; 该函数绑定到按钮单击,该按钮在JavaScript代码中用onclick函数定义(即,它未在html按钮定义中定义)。
下面是该功能的粗略分类(清理出来用于查看目的 - 我希望我已经足够清楚了):
function compareJSON() {
// loop through the objects, testing and changing data
// ...
dataSession=({ //build object for output });
$.each( dataSession.chapters , function( indexC, value ) {
//compare objects to some others, testing and changing data
});
// ...
//Call remote script on other system
urlString="url://blah.dee.com/Blar?script=SaveJSON&$JSONobject=";
window.location= urlString + JSON.stringify(dataSession);
//Call remote script on other system
window.location="url://blah.dee.com/Blar?script=EditJSON";
}
最后三行代码是两个调用。 它使用window.location实际触发远程系统,通过URL传递数据。 但我需要两个脚本才能被调用并运行。 看来只有序列中的最后一个脚本才能运行。 如果我切换它们,它仍然是最后的地方。
有没有关于window.location的东西,直到函数结束才真正处理?
这个脚本实际上是一系列单独的函数调用,但我想我正在运行异步执行,导致各种脚本调用不能注册。 但是,一旦我将代码放入这个单一功能中,它仍然在发生。
任何线索都会有帮助。
谢谢,J
修改window.location
的值仅用于您希望导致浏览器重定向的实例。
它看起来像你想要触发一个页面请求。 你说你已经加载了jQuery,如果是的话,你可以使用jQuery.get
或类似的函数触发这样的请求。
例如:
// Loads the myscript.php page in the background
$.get('myscript.php');
// You can also pass data (in the form of an object as the second argument)
$.get('myscript.php', { name: "John", time: "2pm" });
链接地址: http://www.djcxy.com/p/71687.html