已设置script样式的元素display:block显示为可见.为什么它是可能的,是否有任何真正的用例需要它?
td > * {
display: block;
}Run Code Online (Sandbox Code Playgroud)
<table>
<tr>
<td>
<script type="text/javascript">
var test = 1;
</script>von 1
</td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
我正在动态地向<script>页面添加标签<head>,我希望能够以某种方式判断加载是否失败 - 404,加载脚本中的脚本错误等等.
在Firefox中,这有效:
var script_tag = document.createElement('script');
script_tag.setAttribute('type', 'text/javascript');
script_tag.setAttribute('src', 'http://fail.org/nonexistant.js');
script_tag.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script_tag);
Run Code Online (Sandbox Code Playgroud)
但是,这在IE或Safari中不起作用.
有没有人知道如何在Firefox以外的浏览器中使用它?
(我不认为需要在.js文件中放置特殊代码的解决方案是一个很好的解决方案.它不够优雅且不灵活.)
我在解决这个问题上遇到了问题.我首先尝试将脚本标记设置为字符串,然后使用jquery replaceWith()在页面加载后将它们添加到文档中:
var a = '<script type="text/javascript">some script here</script>';
$('#someelement').replaceWith(a);
Run Code Online (Sandbox Code Playgroud)
但是我在那个var上得到了字符串文字错误.然后我尝试编码字符串,如:
var a = '&left;script type="text/javascript">some script here<\/script>';
Run Code Online (Sandbox Code Playgroud)
但发送它replaceWith()只是将该字符串输出到浏览器.
有人可以告诉我你如何<script>在页面加载后动态地将标签添加到浏览器中,理想情况下通过jQuery?
我有我在服务器上生成的JSON文件,因为页面是可见的,所以我想在客户端上访问它.基本上我想要实现的是:
我在我的html文档中声明了以下标记:
<script id="test" type="application/json" src="http://myresources/stuf.json">
Run Code Online (Sandbox Code Playgroud)
源中引用的文件具有JSON数据.正如我所见,数据已经下载,就像脚本一样.
现在,我如何在Javascript中访问它?我已经尝试使用和不使用jQuery访问脚本标记,使用多种方法来尝试获取我的JSON数据,但不知怎的,这不起作用.innerHTML如果json数据是在脚本中内联编写的,那么它本来可行.它不是,而不是我想要实现的目标.
页面加载后的远程JSON请求也不是一个选项,以防您想要建议.
是否可以告诉浏览器不要从HTML文档的特定部分运行JavaScript?
喜欢:
<div script="false"> ...
Run Code Online (Sandbox Code Playgroud)
它可以作为一个额外的安全功能.我想要的所有脚本都加载到文档的特定部分.文档的其他部分应该没有脚本,如果不存在则不应该运行.
我有一个动态生成的页面,我想使用静态JavaScript并将JSON字符串作为参数传递给它.我已经看到了Google使用的这种方法(请参阅Google的+1按钮:他们是如何做到的?).
但是我应该如何从JavaScript中读取JSON字符串?
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script src="myscript.js">{"org": 10, "items":["one","two"]}</script>
</head>
<body>
Hello
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在这个JavaScript中,我想使用{"org": 10, "items":["one","two"]}HTML文档中的JSON参数.我不知道用jQuery或不用它是否最好.
$(function() {
// read JSON
alert("the json is:")
})
Run Code Online (Sandbox Code Playgroud) 我读了教程: http://drnicwilliams.com/2006/11/21/diy-widgets/由Nic博士为XSS Widgets提供.
我正在寻找一种将参数传递给脚本标签的方法.例如,要进行以下工作:
<script src="http://path/to/widget.js?param_a=1&param_b=3"></script>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
更新:两个有趣的链接:
我有一个页面正在从第三方加载脚本(新闻源).src脚本的URL在加载时动态分配(每个第三方代码).
<div id="div1287">
<!-- dynamically-generated elements will go here. -->
</div>
<script id="script0348710783" type="javascript/text">
</script>
<script type="javascript/text">
document.getElementById('script0348710783').src='http://oneBigHairyURL';
</script>
Run Code Online (Sandbox Code Playgroud)
http://oneBigHairyURL从那时加载的脚本创建并加载元素,其中包含来自新闻源的各种内容,具有漂亮的格式等等div1287(传入Id"div1287",http://oneBigHairyURL以便脚本知道加载内容的位置).
唯一的问题是,它只加载一次.我希望它每n秒重新加载(从而显示新内容).
所以,我想我会试试这个:
<div id="div1287">
<!-- dynamically-generated elements will go here. -->
</div>
<script id="script0348710783" type="javascript/text">
</script>
<script type="javascript/text">
loadItUp=function() {
alert('loading...');
var divElement = document.getElementById('div1287');
var scrElement = document.getElementById('script0348710783');
divElement.innerHTML='';
scrElement.innerHTML='';
scrElement.src='';
scrElement.src='http://oneBigHairyURL';
setTimeout(loadItUp, 10000);
};
loadItUp();
</script>
Run Code Online (Sandbox Code Playgroud)
我收到警报,div清除,但没有动态生成的HTML重新加载到它.
知道我做错了什么吗?
使用带有嵌入代码的单个脚本标记或使用遍布HTML的相同代码的多个脚本标记之间是否存在任何差异(性能,最佳实践等)?
例如:
<script>
foo();
</script>
...
<script>
bar();
</script>
Run Code Online (Sandbox Code Playgroud)
与:
<script>
foo();
bar();
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢
例如,Joel Spolsky的公共职业生涯中的观点来源
<script type="text/html" id="stackexchangeanswerswidget">
<h3>Top Answers</h3>
<div class="answers">
</div>
</script>
<script type="text/html" id="topanswer">
<div class="top-answer">
<div class="top-answer-stats">{{= shared.htmlEncode(Score) }}</div>
<span class="top-answer-title"><a href="{{=AnswerLink}}">{{= shared.htmlEncode(Title) }}</a></span>
<a class="add-answer">add</a>
<br class="clear" />
</div>
</script>
<script type="text/html" id="answer-view">
<div class="answer">
<div class="answer-stats {{= shared.htmlEncode(Site.toLowerCase().replace(/ /g, '')) }}">
<div class="score">
<strong>{{= shared.htmlEncode(Score) }}</strong>
<div class="votecount">votes</div>
</div>
<img class="answer-logo" src="{{= shared.htmlEncode(FaviconUrl) }}" />
</div>
<div class="answer-content">
<span class="q">Q:</span>
<div class="answer-top">
<a class="answer-title" href="{{= shared.htmlEncode(AnswerLink) }}">{{= shared.htmlEncode(Title) }}</a><br />
</div>
<span class="a">A:</span><div class="answer-body">{{= Body …Run Code Online (Sandbox Code Playgroud) script-tag ×10
javascript ×9
html ×6
json ×2
css ×1
html5 ×1
jquery ×1
news-feed ×1
onerror ×1
parameters ×1
widget ×1
xss ×1