Javascript 使用jQuery动态添加时未加载脚本
我正在尝试使用jQuery向我的项目动态添加脚本。脚本已成功添加到Javascript 使用jQuery动态添加时未加载脚本,javascript,jquery,jotform,Javascript,Jquery,Jotform,我正在尝试使用jQuery向我的项目动态添加脚本。脚本已成功添加到head标记,但内容未呈现在body标记中 这是我的代码: <script type="text/javascript"> window.onload = function() { var s = document.createElement("script"); s.type = "text/javascript"; s.src = "https://for
head
标记,但内容未呈现在body
标记中
这是我的代码:
<script type="text/javascript">
window.onload = function() {
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://form.jotform.com/jsform/81003857231348";
$("head").append(s);
}
</script>
window.onload=函数(){
var s=document.createElement(“脚本”);
s、 type=“text/javascript”;
s、 src=”https://form.jotform.com/jsform/81003857231348";
$(“标题”)。追加;
}
但是,如果直接添加脚本,脚本将成功加载:
我遗漏了什么吗?尝试使用
window.onload = function() {
//your script declaration here
}
尝试使用
window.onload = function() {
//your script declaration here
}
您可以使用jQuerys加载和执行脚本,而不是
jqueryready()。它不需要在DOM中就可以访问元素
$.getScript ("test.js", function (){
alert ("Running test.js");
});
可以使用jQuerys加载和执行脚本。它不需要在DOM中就可以访问元素
$.getScript ("test.js", function (){
alert ("Running test.js");
});
我找到了解决办法
首先,您不能从外部加载的脚本向文档写入任何内容
无法对“文档”执行“写入”:
除非显式打开异步加载的外部脚本,否则无法从该脚本写入文档
有两种方法可以解决这个问题
1)。
您正在创建Iframe作为html内容,并将其写入文档
document.write(htmlCode)
线上创建动态加载内容的问题
尝试下面的方法,而不是代码
var htmlCode = document.createElement("iframe");
htmlCode.setAttribute("title", title.replace(/[\\"']/g,'\\$&').replace(/&/g,'&'));
htmlCode.setAttribute("src","");
htmlCode.setAttribute("allowtransparency","true");
htmlCode.setAttribute("allow","geolocation; microphone; camera");
htmlCode.setAttribute("allowfullscreen","true");
htmlCode.setAttribute("name",this.formId);
htmlCode.setAttribute("id",this.iframeDomId);
document.body.appendChild(htmlCode);
并在html中添加以下Js代码
<script type="text/javascript">
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://form.jotform.com/jsform/81003857231348";
document.getElementsByTagName("head")[0].appendChild(s);
</script>
试一试
如果您仍然面临任何问题,请告诉我。我找到了解决方案
首先,您不能从外部加载的脚本向文档写入任何内容
无法对“文档”执行“写入”:
除非显式打开异步加载的外部脚本,否则无法从该脚本写入文档
有两种方法可以解决这个问题
1)。
您正在创建Iframe作为html内容,并将其写入文档
document.write(htmlCode)
线上创建动态加载内容的问题
尝试下面的方法,而不是代码
var htmlCode = document.createElement("iframe");
htmlCode.setAttribute("title", title.replace(/[\\"']/g,'\\$&').replace(/&/g,'&'));
htmlCode.setAttribute("src","");
htmlCode.setAttribute("allowtransparency","true");
htmlCode.setAttribute("allow","geolocation; microphone; camera");
htmlCode.setAttribute("allowfullscreen","true");
htmlCode.setAttribute("name",this.formId);
htmlCode.setAttribute("id",this.iframeDomId);
document.body.appendChild(htmlCode);
并在html中添加以下Js代码
<script type="text/javascript">
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://form.jotform.com/jsform/81003857231348";
document.getElementsByTagName("head")[0].appendChild(s);
</script>
试一试
如果您仍然面临任何问题,请告诉我。使用与jquery声明相关的脚本在哪里?删除type=“text/javascript”
@GerardoBLANCO我删除了该脚本,但仍然没有加载。我首先添加jquery,然后尝试附加这个脚本。如果您的js文件不是有效的js文件,它将不会加载。我猜它会给出404。使用与jquery声明相关的脚本在哪里?删除type=“text/javascript”
@GerardoBLANCO我删除了它,但仍然没有加载。我首先添加jquery,然后尝试附加这个脚本。如果您的js文件不是有效的js文件,它将不会加载。我猜它会给出404,并使用document.head.appendChild
尝试排除所有jQuery内容,并检入inspector检查脚本标记是否在DOM中,并使用document.head.appendChild
尝试排除所有jQuery内容,并检入inspector检查您的脚本标记是否在DOM中。我得到了未捕获的引用错误:标题未定义
@Valip,而不是html内容您必须替换此代码才能生成iframe,然后它会起作用。您可以提供一个JSFIDLE示例,说明这应该如何工作吗?我不确定我是否理解…@Valip,看看这个文件,看看第7行到第20行的代码!但是您是如何生成此链接的?我得到了未捕获的引用错误:标题未定义
@Valip,而不是html内容您必须替换此代码才能生成iframe,然后它就会工作。您可以提供一个JSFIDLE,并举例说明如何工作吗?我不确定我是否理解…@Valip,看看这个文件,看看第7行到第20行的代码!但是你是如何生成这个链接的呢?