//下面是Widget.html文件。这是我需要帮助的文件。这部分不像我预期的那样工作。小部件本身可以工作,除了它不会显示网站。我试图将它显示在显示Reddit幻灯片的位置,用户可以在其中选择要查看哪个subreddit,以及如何查看它的选项(热门,热门,上升,争议)。完整的代码到目前为止有10个subreddits可供选择;我切断了八个来缩短帖子。当你使用它时,你可以成功选择一个subreddit和选项,但当你点击“添加”时,它只是一个盒子,所以我知道我的.plist文件有效。我只是不确定如何让这个.html文件正常运行。任何帮助将不胜感激。
<body>
<div id="wrapper">
<script type="text/javascript">
$(document).ready(function(){
var inst_a = new Array(); //subreddit selection
var inst_b = new Array(); //options
//gaming
//option1
inst_a[1] + inst_b[11] = '<iframe src="http://www.redditp.com/r/gaming/top/?t=all" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option2
inst_a[1] + inst_b[12] = '<iframe src="http://www.redditp.com/r/gaming" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option3
inst_a[1] + inst_b[13] = '<iframe src="http://www.redditp.com/r/gaming/rising" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option4
inst_a[1] + inst_b[14] = '<iframe src="http://www.redditp.com/r/gaming/controversial/?t=all" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//news
//option1
inst_a[2] + inst_b[11] = '<iframe src="http://www.redditp.com/r/news/top/?t=all" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option2
inst_a[2] + inst_b[12] = '<iframe src="http://www.redditp.com/r/news" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option3
inst_a[2] + inst_b[13] = '<iframe src="http://www.redditp.com/r/news/rising" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
//option4
inst_a[2] + inst_b[14] = '<iframe src="http://www.redditp.com/r/news/controversial/?t=all" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
$('#wrapper').html(inst_a[feed] + inst_b[feed]);
});
</script>
</div>
</body>
//下面是用于用户输入的Options.plist。第一组dict标签是选择subreddit。最后一组是选择subreddit选项(热门,上升等)。
<plist version="1.0">
<array>
<dict>
<key>name</key>
<string>feed</string>
<key>type</key>
<string>select</string>
<key>label</key>
<string>Feed</string>
<key>default</key>
<string>News</string>
<key>options</key>
<dict>
<key>News</key>
<string>1</string>
<key>Gaming</key>
<string>2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>vMode</string>
<key>type</key>
<string>select</string>
<key>label</key>
<string>View Options</string>
<key>default</key>
<string>Hot</string>
<key>options</key>
<dict>
<key>Top</key>
<string>11</string>
<key>Hot</key>
<string>12</string>
<key>Rising</key>
<string>13</string>
<key>Controversial</key>
<string>14</string>
</dict>
</dict>
</array>
</plist>
答案 0 :(得分:0)
我认为你接近这一切都是错误的,很可能是由于缺乏 写代码的经验。在我为您找到可能的解决方案之前,我已经做过了 强烈建议您学习更多关于Javascript和一般编程的知识 在继续你的下一个项目之前的知识。
我将引导你解决这个问题(至少在方法I&#39; d
推荐)而不只是告诉你什么将解决&#34;你的问题。所以一步
一个是检查您正在构建的<iframe>
字符串。你看到了什么吗
所有这些都是一样的吗?
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
<iframe src="" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>
我已删除了网址,以便更清楚地了解这里的内容,正如您所看到的那样 他们都完全一样。这是清理这个的绝佳机会 重复的代码。并使其成为一种功能。
var buildIframeCode = function(url) {
return '<iframe src="' + url + '" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:320px; height: 480px" ></iframe>';
};
这样可以更轻松,现在让我们查看网址:
http://www.redditp.com/r/gaming/top/?t=all
http://www.redditp.com/r/gaming
http://www.redditp.com/r/gaming/rising
http://www.redditp.com/r/gaming/controversial/?t=all
http://www.redditp.com/r/news/top/?t=all
http://www.redditp.com/r/news
http://www.redditp.com/r/news/rising
http://www.redditp.com/r/news/controversial/?t=all
嗯,它们都有相同的基础,所以这又是重用的绝佳机会 那。 URL在这里采用参数,subreddit和sort在这里 我们需要采取两个论点:
var buildRedditUrl = function(subreddit, sort) {
return "http://www.redditp.com/r/" + subreddit + sort;
};
现在我们已经完成了这两个设置,只要选项发生变化,我就可以轻松完成:
buildIframeCode(buildRedditUrl(selectedSubreddit, selectedSort));
这些选项并不需要数字,我们现在可以使用字符串:
var reddits = {
"Gaming": "gaming",
"News": "news"
};
var sorts = {
"Top": "/top/?t=all",
"Hot": "",
"Rising": "/rising",
"Controversial": "/controversial/?t=all"
};
当然,如果这是您的方法,您可以从plist文件中加载它们 希望采取。现在你们都准备前进了。
与您的示例集成:
$("#wrapper").html(buildIframeCode(buildRedditUrl(reddits[selectedReddit], sort[selectedSort])));