Hi,
I've tried a somewhat different tactics. Instead of using
document.write, I tried createTiddlyButton, like this:
var strTagList = "$1";
var arrTags = strTagList.split(",");
var i;
for (i=0;i<arrTags.length;i++) {
createTiddlyButton(place, "Add "+arrTags[i], "Add "+arrTags[i],
function x() {
var here=story.findContainingTiddler(place);
if (here) {tiddler=store.getTiddler(here.getAttribute("tiddler"));}
var tags = arrTags[i];
store.setTiddlerTag(tiddler.title,true,tags);}, "bold");
}

However, no luck. I get the label and the tooltip, but that's it.
Any ideas?
w

On Feb 11, 7:57 am, whatever <[email protected]> wrote:
> After playing around for a while, I came to realize that the for-loop
> is not the problem, because if I replace the document.write line with
> document.write(arrTags[i]+"<br/>");
> I get all the words I enter displayed correctly.
>
> And if I replace the document.write command with alert, the popup
> shows the internal script rendered correctly, like so:
> <script label="Add foo" title="Add foo">var
> here=story.findContainingTiddler(place); if (here)
> {tiddler=store.getTiddler(here.getAttribute("tiddler"))};
> store.setTiddlerTag(tiddler.title,true,"foo"); </script><br/>
>
> If I replace document.write with return, I get the first word rendered
> correctly and can add it as a tag, but the other words are ignored.
> Also, in this case JSLint reports "Strange loop".
>
> The quotes are escaped correctly and I also escaped the internal
> script tag (<\/script>).
> I'm guessing it has to with the fact that the internal script calls on
> the variable from the parent script. Any ideas?
>
> w
>
> On Feb 10, 12:46 am, "Mark S." <[email protected]> wrote:
>
> > Its been awhile since I've written for TW. It looks to me that for
> > starters, you may have some quotes escaped incorrectly.
>
> > I believe that maybe this part
> > ..."\">var here...
>
> > should have been written/escaped like
>
> > ..."\""+">var here...
>
> > but my eyes were beginning to water ;-) There could be more.
>
> > On a larger note, I'm pretty sure that using document.write is the
> > wrong way to go about writing code for TW. It might work sometimes,
> > but on the other hand it may end up writing some place you never
> > intended. Maybe look through some of the various plugins to see what
> > TW functions they use to write out stuff.
>
> > Mark
>
> > On Feb 9, 10:53 am, whatever <[email protected]> wrote:
>
> > > Hi!
> > > I've been playing around with scripts for adding tags to tiddlers.
> > > I've figured out how to do it using fET-generated lists of tiddlers,
> > > however, I'm having trouble with passing values through transclusion.
> > > I've come up with the following (beware googlewrap):
>
> > > <<tiddler AddTagsScriptsTEST/testscript with:"tool,device">>
> > > <part testscript hidden>
> > > <script>
> > > var strTagList = "$1";
> > > var arrTags = strTagList.split(",");
> > > var i;
> > > for (i=0;i<arrTags.length;i++) {
> > > document.write("<script label=\"Add "+arrTags[i]+"\" title=\"Add
> > > "+arrTags[i]+"\">var here=story.findContainingTiddler(place); if
> > > (here) tiddler=store.getTiddler(here.getAttribute(\"tiddler\"));
> > > store.setTiddlerTag(tiddler.title,true,\""+arrTags[i]+"\"); </
> > > script><br/>");}
>
> > > </script>
> > > </part>
>
> > > It should generate two links:
> > > Add tool
> > > Add device
>
> > > On click, it would add the corresponding tag to the tiddler. Now, I
> > > know that the script in the "document.write" line works, because I've
> > > used it before, but I still get an error:
>
> > > SyntaxError: unterminated string literal
> > > ");}
>
> > > </script>
>
> > > I've tested it with JSLint (1), but it only reported:
> > > Problem at line 5 character 1: document.write can be a form of eval.
>
> > > I'm guessing the problem is in the first part, however, JavaScript is
> > > not my strong suite, so if anyone has any suggestions, I'd be
> > > grateful.
>
> > > w
>
> > > (1)http://www.jslint.com/

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tiddlywiki?hl=en.

Reply via email to