现在假设有一个页面:1.htm
这个页面里只有几个字。(即便是用网页源码查看,整个页面就只有几个数字,比如这串数字是123456789。)
我现在在2.htm里面要调用1.htm里面的那几个字,该怎么写js调用代码。最好能够把1.htm里面的这串数字变成一个变量。
如果1.htm和2.htm不在同一个域名下,且1.htm所在的服务器是你无法控制的,那么你想实现在2.htm用纯js的方法读取1.htm的内容几乎是不可能的,因为这会触发浏览器的跨域保护机制,说明白点就是浏览器会限制你随意获取其他网站的内容,只要是正规的浏览器都会这么做的。
解决办法是利用后台程序转接一下,就是在后台服务器利用php、asp、jsp等等去读取1.htm的内容(这不会有任何跨域问题),这样2.htm中利用ajax向这个后台程序发送请求即可。下面是个php的例子:
<?php
echo file_get_content("1.htm的url写在这里");
?>
当然,这个php文件必须与2.htm在同一个域名下,否则仍然会有跨域问题。
解决办法是利用后台程序转接一下,就是在后台服务器利用php、asp、jsp等等去读取1.htm的内容(这不会有任何跨域问题),这样2.htm中利用ajax向这个后台程序发送请求即可。下面是个php的例子:
<?php
echo file_get_content("1.htm的url写在这里");
?>
当然,这个php文件必须与2.htm在同一个域名下,否则仍然会有跨域问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-07-25
那就在两个页面都引入同一个js文件,然后通过获取1.html的dom,使用变量保存起来,
例如:var a = document.getElementById('box1').innerHTML();
如果要转成字符串也是可以的 var b = a.toString();
那么现在在1.html里面的内容现在就转成了字符串保存在b变量中了,
你要在2.html页面中使用,例如显示出来:
var c = document.getElementById('box2');
c.innerHTML = b;
这样就可以了追问
例如:var a = document.getElementById('box1').innerHTML();
如果要转成字符串也是可以的 var b = a.toString();
那么现在在1.html里面的内容现在就转成了字符串保存在b变量中了,
你要在2.html页面中使用,例如显示出来:
var c = document.getElementById('box2');
c.innerHTML = b;
这样就可以了追问
有字符串的这个页面不是我域名下的文件,无法更改。我只能调用他的页面。但是又要把他这个页面里面的内容转换成js变量,用在我自己的页面中。
第2个回答 2019-06-18
那就设置一个 window.变量=123456789;
或者
本回答被网友采纳第3个回答 2019-07-25
1、必须两个页面在同一个域
2、将两个页面的js拿出来,保存为a.js
3、在两个页面里都引用这个a.js,那么里面的函数在两个页面里都能使用了
2、将两个页面的js拿出来,保存为a.js
3、在两个页面里都引用这个a.js,那么里面的函数在两个页面里都能使用了