我一直在玩将隐藏的iframe元素添加到页面中,并且我希望在加载后操纵这些元素的DOM.我注意到,在将iframe添加到页面后,我无法立即开始操作DOM,因为它还没有加载.这不能用DOMContentLoaded事件来完成,因为它会触发iframe中不存在的文档,直到它被添加到页面中,因此我们必须使用该load事件.
这是一些测试代码:
var iframe = document.createElement('iframe');
iframe.onload = function() { console.log('loaded!'); };
document.getElementsByTagName('body')[0].appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但是当我将其更改为addEventListener它甚至没有添加到DOM:
var iframe = document.createElement('iframe');
iframe.addEventListener('load', function() { console.log('loaded!'); });
document.getElementsByTagName('body')[0].appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)
我还没有attachEvent在IE中测试过.
有人对此有所了解吗?
我在aspx页面中使用fancybox.文档就绪功能在此页面中不适用于灯箱.有人告诉我要写一个新的javascript代码来加载该页面中的灯箱.
我需要在页面完成后从ASP.NET代码运行一个javascript函数.
到目前为止我已经使用了这个代码,但它返回"undefined",因为当javascript函数被触发时,隐藏字段没有填充值.
我该怎么办?Thanx提前.
ASPX:
<asp:HiddenField runat="server" ID="ColorHiddenField" ClientIDMode="Static" Value="0" />
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function HandleColors() {
alert($('#<%= ColorHiddenField.ClientID %>').val());
}
Run Code Online (Sandbox Code Playgroud)
代码背后:
ColorHiddenField.Value = item.Color;
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "HandleColors();", true);
Run Code Online (Sandbox Code Playgroud) 我的元素有 transition: transform .5s
然后它有一个单独的类: transform: translatex(-100%)
所以我想要实现的是,最初,元素位于左侧. 在窗口上载,渲染元素时,我删除了变换类,浏览器会将元素设置为正确的位置.
但实际发生的是,当页面变得可见/渲染时,元素已经处于正确的位置.并且没有动画.
我试过setTimeout(function() {}, 0);它不起作用.如果我setTimeout 1秒,它可以工作,但有时渲染需要很长时间,我必须setTimeout 2秒.但有时它会变得很快,2秒钟需要等待很长时间.
总的来说,我觉得这不是一种可靠或正确的方法.
我怎样才能达到我想要的,正确的方法?
编辑:对不起家伙,在尝试组装演示后,我意识到我没有在窗口上卸载类.这是因为我的元素及其javascript和css都加载了AJAX.所以它可以在窗口加载之前或窗口加载之后发生.
无论如何,现在我的问题是,如果窗口需要很长时间才能加载怎么办?是否有可能在窗口加载之前渲染我的元素?或者浏览器仅在整个窗口完成加载时呈现?
因为我想尽快为元素制作动画.那么,在窗口需要很长时间才能加载(图像和连接缓慢,以及东西)的情况下,等待窗口加载是否安全?
如果我在窗口加载后用AJAX加载元素,我可以通过删除转换立即运行动画吗?或者我应该检测元素何时被渲染?
我正在开发一个网站,我想将结构化数据添加到详细页面.问题是我需要在知道要添加到JSON-LD脚本的内容之前请求数据.
我使用Parse作为后端.我还试图寻找有关如何实现这一目标的教程,但似乎无法动态添加JSON-LD.
我真的希望有人可以帮助我!:)
编辑:
在DOM准备好之后,我需要在JSON-LD中添加数据的响应.这种情况下的模式是什么?
我有一个项目列表,当点击其中一个项目时,我必须打开一个我必须先加载的详细信息页面,但是在加载内容之后我想通过JSON-LD提供结构化数据.
我刚开始,我很难解决这个问题.
编辑2:
这是我的实际实现:
在HTML中:
<body>
// my html page code
...
<script type="text/javascript">
loadDetailPageContent();
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
在JS中:
function loadDetailPageContent() {
// Calling the method here is too early because I don't have info
//writeData();
createDetailPage();
}
function createDetailPage() {
var recipe = Parse.Object.extend("Recipe");
var query = new Parse.Query(recipe);
query.equalTo("objectId", myId);
query.first({
success: function(result) {
// Calling the method here would be perfect
writeData();
},
error: function(error) {
alert("Error: " + error.code + " " …Run Code Online (Sandbox Code Playgroud) 如何自动执行javascript?
我知道<body onLoad="">,但我想也许还有另一种方法可以做到这一点?
HTML:
<html><head></head><body><div id="test"></div></body></html>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
<script>(function(){var text = document.getElementById('test').innerHTML;var newtext = text.replace('', '');return newtext;})();</script>
Run Code Online (Sandbox Code Playgroud)
我想在"测试"中获取文本,替换某些部分,然后将其输出到浏览器.
关于如何做的任何想法?我很感激任何帮助.谢谢.
我想更改html页面的span元素中文本的颜色,字体大小和字体粗细.
我使用以下代码:
if(window.location.href.indexOf("test") > -1){
var search_span = document.getElementsByClassName("securitySearchQuery");
search_span[0].style.color = "blue";
search_span[0].style.fontWeight = "bold";
search_span[0].style.fontSize = "40px";
}
Run Code Online (Sandbox Code Playgroud)
以下是我的html页面的代码
<h1 class="keyword-title">Search results for<span class="securitySearchQuery"> "hi".</span></h1>
Run Code Online (Sandbox Code Playgroud)
我想通过id获取元素,但不幸的是它们只有类和没有id.我没有权限更改html代码,只是将js代码添加到网站外部.
我试图查看其他stackoverflow帖子,但可以找到解决方案.我是js和css的新手,请告诉我哪里出错了.
我有一个脚本,可以在网页生命周期的任何阶段加载.加载脚本时,它必须运行initialize()方法.
我希望这个函数在"onload"事件上运行,但是我不能确定页面还没有加载,即"onload"还没有被解雇.
理想情况下,我的脚本看起来像这样:
var _initialize = function() { ...};
if(window.LOADED)
_initialize();
else if (window.addEventListener)
window.addEventListener('load', _initialize, false);
else if (window.attachEvent)
window.attachEvent('onload', _initialize);
Run Code Online (Sandbox Code Playgroud)
有没有这样的window.LOADED或document.LOADED变量或类似的东西?
谢谢,谢恩
我在下面给出了一个简单的 jQuery 代码示例:
$(".black").on("click", function() {
$(this).css("color", "red");
});
Run Code Online (Sandbox Code Playgroud)
当单击具有 'black' css 类的元素时,特定元素的(此)颜色变为红色。
现在,如何用纯 JavaScript 编写上述代码?请告诉我 Jquery $(this) 在用于类选择器时的 JavaScript 等价物。
我想在我的网页中加载/插入外部html页面.示例:
<b>Hello this is my webpage</b>
You can see here an interresting information :
XXXX
Hope you enjoyed
Run Code Online (Sandbox Code Playgroud)
的XXXX应该由一个小的脚本(尽可能小),该加载页面等代替http://www.mySite.com/myPageToInsert.html
我用jquery找到了以下代码:
<script>$("#testLoad").load("http://www.mySite.com/myPageToInsert.html");</script>
<div id="testLoad"></div>
Run Code Online (Sandbox Code Playgroud)
我不想使用外部javascript库作为jquery ...