Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用html中的onclick属性从另一个网页调用一个网页的javascript函数?_Javascript_Html - Fatal编程技术网

如何使用html中的onclick属性从另一个网页调用一个网页的javascript函数?

如何使用html中的onclick属性从另一个网页调用一个网页的javascript函数?,javascript,html,Javascript,Html,我想从另一个网页调用一个网页的javascript函数。假设我有一个在a.html中定义的函数myFunction,我想在B.html中使用onclick属性。我如何在B.html中使用onclick调用myFunction,以便它能在A.html中带来一些变化 下面是一个例子 html包括 <script> function myFunction() { document.getElementById("my_contents").style.display="block"

我想从另一个网页调用一个网页的javascript函数。假设我有一个在a.html中定义的函数myFunction,我想在B.html中使用onclick属性。我如何在B.html中使用onclick调用myFunction,以便它能在A.html中带来一些变化

下面是一个例子

html包括

<script>
function myFunction() {
    document.getElementById("my_contents").style.display="block";
}
</script>

您试图做的是不可能的,因为HTML页面不允许其他网页使用本地功能

要解决您的问题: 创建一个名为script.js的文件。 将javascript函数放在其中,不带标记


在两个网页的标签中,添加您尝试执行的操作是不可能的,因为HTML网页不允许其他网页使用本地功能

要解决您的问题: 创建一个名为script.js的文件。 将javascript函数放在其中,不带标记


在两个网页的标记中添加

,您需要创建一个单独的文件,如myscript.js,并使用script标记将其链接到页面中

您需要创建一个单独的文件,如myscript.js,并使用script标记在页面中链接它

首先,窗口之间必须有一个链接,就像您使用window.open打开页面一样

窗口对象是JavaScript中的全局对象。如果两个窗口页面都有名称,则可以从一个窗口方法调用另一个窗口方法。要从子窗口调用父窗口函数,我们调用window.opener函数。在这方面探索更多选项


您不能从任何页面随机调用任何页面javascript函数,就像您不能在facebook.com中调用google.com的javascript函数一样,除非未使用window.open从google.com页面打开facebook页面。

首先,必须在窗口之间创建链接,就像您使用window.open打开页面一样

窗口对象是JavaScript中的全局对象。如果两个窗口页面都有名称,则可以从一个窗口方法调用另一个窗口方法。要从子窗口调用父窗口函数,我们调用window.opener函数。在这方面探索更多选项

除非没有使用window.open从google.com页面打开facebook页面,否则您不能从任何页面随机调用任何页面javascript函数,就像您不能在facebook.com中调用google.com的javascript函数一样

您可以使用同一域上的localStorage页访问同一存储。将消息/说明保存到存储器,两个页面都将通过计时器进行检查

如果B页由A页打开,则使用方法postMessage

stackoverflow有一些有趣的解决方案:

解决方案示例:

A.html

B.html

您可以使用同一域上的localStorage页访问同一存储。将消息/说明保存到存储器,两个页面都将通过计时器进行检查

如果B页由A页打开,则使用方法postMessage

stackoverflow有一些有趣的解决方案:

解决方案示例:

A.html

B.html


从您试图实现的外观来看,听起来您必须将“A.html”中定义的值存储在某种形式的书面文件或SQL数据库中。。。然后用某种默认值填充B.html中的值,除非在存储的文件/SQL数据库中指定。这是可以实现的,但不仅仅是如作者所指出的HTML和Javascript。使用PHP或Java可能会达到这个效果


。。。或者忽略我所说的,只是拥有一个预定义值的列表/数组。

从您试图实现的外观来看,听起来您必须将“a.html”中的定义值存储在某种形式的书面文件或SQL数据库中。。。然后用某种默认值填充B.html中的值,除非在存储的文件/SQL数据库中指定。这是可以实现的,但不仅仅是如作者所指出的HTML和Javascript。使用PHP或Java可能会达到这个效果


。。。或者忽略我所说的,只需要一个预定义值的列表/数组。

页面B可以调用页面a上的任何函数。如果需要,函数位于窗口对象中。 它不安全,但可以工作

A页:

B页:


页面B可以调用页面A上的任何函数。如果需要,函数位于窗口对象中。 它不安全,但可以工作

A页:

B页:


是否不可能创建一个名为script.js的文件,其中包含您的函数并在两个页面上导入它?您不能这样做。甚至不要依赖于它们之间的关系,如果它们在同一个域上,并且其中一个嵌入到iframe中,那么只需通过iframe的作用域访问它,即iframe.contentWindow.myFunction(如果是全局的)。否则,您必须在每一条消息上实现窗口消息,并根据收到的消息OK执行该功能。但如此
rry我不知道“script.js”,因为这是我第一次启动javascript。是否不可能创建一个名为script.js的文件,其中包含您的函数并在两个页面上导入它?您不能这样做。甚至不要依赖于它们之间的关系,如果它们在同一个域上,并且其中一个嵌入到iframe中,那么只需通过iframe的作用域访问它,即iframe.contentWindow.myFunction(如果是全局的)。否则,您必须在每一条消息上实现窗口消息,并根据收到的消息OK执行该功能。但很抱歉,我没有意识到“script.js”,因为这是我第一次启动javascript。如果适合您的情况,请尝试一下。如果适合你的情况,试试这个。谢谢。这个答案对我来说很简单。实际上并非不可能:在客户端有几种方法。谢谢。这个答案对我来说很简单。其实并非不可能:在客户端有几种方法。
<a href="Contents.html#entertainment" target="ccc" onclick="myFunction()">
<h4>Entertainment</h4></a>
<script>
setInterval(function(){
  var isNeedCall = localStorage.getItem('isNeedCall');

  if(isNeedCall == 'yes'){
    myFunction();
    localStorage.setItem('isNeedCall', 'no');
  }
}, 500);

function myFunction() {
  document.getElementById("my_contents").style.display="block";
}
</script>
<script>
function myFunction() {
  localStorage.setItem('isNeedCall', 'yes');
}
</script>

<a href="Contents.html#entertainment" target="ccc" onclick="myFunction()">
<h4>Entertainment</h4></a>
<script>
  var callFunction;

  setInterval(function(){
    callFunction = localStorage.getItem('callFunction');

    if(callFunction && (window[callFunction] instanceof Function)){
      window[callFunction]();
      localStorage.setItem('callFunction', '');
    }
  }, 500);

  function myFunction() {
    document.getElementById("my_contents").style.display="block";
  }
</script>
<script>
  function callFunction(functionName){
    localStorage.setItem('callFunction', functionName);
  }
</script>

<a href="/" onclick="callFunction('myFunction')">