0

您好,我正在尝试从 twitch 更改嵌入代码中的对象数据和参数值。
我对 javascript 不是很好,可以使用一些帮助。
我没有运气就完成了我的研究。
感谢所有帮助:)


我要更改的嵌入代码(这是一个新的嵌入代码,没有编辑)

<object type="application/x-shockwave-flash" height="378" width="620" id="live_embed_player_flash" data="http://www.twitch.tv/widgets/live_embed_player.swf?channel=thelifeisyours" bgcolor="#000000">
    <param name="allowFullScreen" value="true" />
    <param name="allowScriptAccess" value="always" />
    <param name="allowNetworking" value="all" />
    <param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf" />
    <param name="flashvars" value="hostname=www.twitch.tv&channel=thelifeisyours&auto_play=true&start_volume=25" />
</object>


这是我到目前为止得到的 js,但它不起作用:P(记住我是 js 中的菜鸟)

function changestream1(){
    var streamIn = document.getElementById('stream1').value;
    var objData= document.getElementById('live_embed_player_flash');
    var param = document.getElementById('param');

    objData.setAttribute("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=" + streamIn); 
    param.setAttribute("value", "hostname=www.twitch.tv&channel=" + streamIn + "&auto_play=true&start_volume=25"); 
}

这个想法是js将创建对象中的数据和参数中的值。


如果您需要了解我的想法,请按链接:D
JsFiddle

链接到将要使用它的网站
twitchgrabber

4

1 回答 1

1

您在此处缺少 + 号 streamIn + "&auto_play=true&start_volume=25"

您应该检查所有代码,还有其他错误,例如在调用 cameCase 时将函数命名为小写,检查每个变量,安装 firebug 并查看控制台中的日志...

这应该工作

<script type="text/javascript">
    function changestream1() {
        var streamInput = document.getElementById('streamName').value;
        var streamIn = ''; //This variable is not defined yet used on the last line of this block;
        var object = document.getElementById('live_embed_player_flash');
        var param = document.getElementById('param');
        object.setAttribute("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=" + streamInput);
        param.setAttribute("value", "hostname=www.twitch.tv&channel=" + streamInput + "&auto_play=true&start_volume=25" + streamIn);
}
</script>
<div id="streamHolder">
    <object type="application/x-shockwave-flash" height="378" width="620" id="live_embed_player_flash" bgcolor="#000000">
        <param name="allowFullScreen" value="true" />
        <param name="allowScriptAccess" value="always" />
        <param name="allowNetworking" value="all" />
        <param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf" />
        <param id="param" name="flashvars" />
    </object>
</div>
<div id="buttons">
    <input type="text" id="streamName" placeholder="Enter Streamer Name Here" style="width:12em;">
    <input type="button" id="button1" onclick="changestream1();" value="Change Stream">
</div>
<p>The name you enter will get put where the "streamInput" variable is in the javascript
<br>that is the general idea atleast</p>
于 2013-09-13T17:34:47.303 回答