Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
Javascript 在jquery加载不起作用的html中包含html_Javascript_Html_Jquery - Fatal编程技术网

Javascript 在jquery加载不起作用的html中包含html

Javascript 在jquery加载不起作用的html中包含html,javascript,html,jquery,Javascript,Html,Jquery,我是网络开发新手,所以我觉得我错过了一些简单的东西。我真的需要有人指出我错过了什么 我试图使用jquery load()函数将本地html文件包含到另一个html文件中。我采纳了其他人的一些建议。它看起来应该很简单,工作很好,但它不工作。我确实在头部添加了jquery源代码,并确保我在正文中插入的部分包含了正确的div id。我不需要插入本地html的特定部分,只需要全部内容。html只是文本,只包含标记和类似的东西 代码如下: <html> <head> <

我是网络开发新手,所以我觉得我错过了一些简单的东西。我真的需要有人指出我错过了什么

我试图使用jquery load()函数将本地html文件包含到另一个html文件中。我采纳了其他人的一些建议。它看起来应该很简单,工作很好,但它不工作。我确实在头部添加了jquery源代码,并确保我在正文中插入的部分包含了正确的div id。我不需要插入本地html的特定部分,只需要全部内容。html只是文本,只包含
标记和类似的东西

代码如下:

<html>
<head>
    <meta charset="utf-8" />
    <title>letters on the road</title>
    <link rel="stylesheet" type="text/css" 
    href="../assets/css/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script> 
    $(function(){
        $("#includedContent").load("text-012518.html"); 
    });
    </script> 
</head>
<body style="font-family:Andale Mono Regular">
    <div id="includedContent"></div>
    <a href="../index_v2.html">home</a>
</body>
</html>

路上的信
$(函数(){
$(“#includedContent”).load(“text-012518.html”);
});
我觉得jquery加载似乎是最干净的选择。我确实尝试过使用object标记,但它将文本放在窗口角落的一个小的可滚动框中。我对css不太熟悉,无法修复它,所以仍然希望jquery负载能够正常工作

我上面的代码没有抛出错误,它只是不包含任何来自外部html的内容。(外部html中的文本确实显示为object,因此我认为外部html本身没有问题。)我还尝试了没有
$(function(){})的代码包装器,它也不工作


大多数堆栈溢出解决方案(,以及更多)都不起作用。由于CORS问题,使用
Jquery.load()
XMLHttpRequest
实现的解决方案失败(至少在chrome上)。解决方法是通过添加
--禁用web安全性
标志或使用
CORS chrome扩展来禁用安全性,这两种功能都只适用于测试,而不适用于生产应用程序

Access to XMLHttpRequest at 'file:///.../text.html' from origin 'null' has been blocked by CORS policy: 
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
这两种方法有效:

  • 使用
    标记-

  • 使用
    iframe
    标记-

我的方法是使用Jquery/vanila javascript,使用
object
标记加载html。将
脚本
标记添加到页面底部。寻找更多的答案

<script>
document.getElementById("includedContent").innerHTML='<object data="text.html"></object>';
</script>

document.getElementById(“includedContent”).innerHTML='';

正确地为其提供html文件的完整路径,例如。load('/index2.html')您可以添加相关文件的文件层次结构吗请…您可以检查开发人员控制台吗。您是否遇到CORS异常?尝试添加回调函数以查看是否成功。哦,是的!谢谢,@Mukesh Keshu控制台中有一个CORS异常。嗯。我明白了。我提供了对象和iframe文档以及粗略扫描,我将用iframe进行尝试。我会让你们知道事情的进展。谢谢大多数情况下,bc似乎是插入插件的推荐对象?但我也会尝试你的建议。我确实在iframe中获得了一些工作代码的外观(我将发布一个关于样式的单独问题)。你能解释一下为什么要用object来代替吗?不太熟悉每种方法的区别和好处。但我确实看到,大多数iframe示例倾向于视频和日历,它们都有各自的优点和缺点。首先,iFrame很难调试,javascript也很难处理内容。看到这个了吗?虽然object和iframe在我的例子中不起作用,但它是一个固定的sidenav+样式,并且它是脱机工作的(我用它来编写我的程序的帮助文件)-所以看起来一切都错了,这至少为我指明了正确的方向,所以谢谢!Firefox也有同样的问题