Skip to main content
jaceks47464130
Participant
April 19, 2019
Answered

How to change automatically frame with hyperlink text into hyperlinked frame

  • April 19, 2019
  • 2 replies
  • 1100 views

I have an hyperlinks in text frames, different in each frame, and I want to have, a link with url to the frames no to text only.
Is it possible to make this automatically in whole document?

This topic is closed to new replies. Start a new post to keep the conversation going.
Correct answer Manan Joshi

Try the following code, it will remove hyperlink on a text and make a hyperlink on its parent textframe with the same destination URL. The code works on the assumption that a textframe will have only one text hyperlink

var h = app.documents[0].hyperlinks.everyItem().getElements()

for(var i = 0; i < h.length; i++)

{

    if(h.source.constructor.name != "HyperlinkTextSource")

          continue;

    var pt = h.source.sourceText.parentTextFrames[0]

    var nm = h.name

    var newSource = app.documents[0].hyperlinkPageItemSources.add(pt)

    var nh = app.documents[0].hyperlinks.add(newSource, h.destination)

    h.remove()

    nh.name = nm

}

-Manan

2 replies

Manan JoshiCommunity ExpertCorrect answer
Community Expert
April 20, 2019

Try the following code, it will remove hyperlink on a text and make a hyperlink on its parent textframe with the same destination URL. The code works on the assumption that a textframe will have only one text hyperlink

var h = app.documents[0].hyperlinks.everyItem().getElements()

for(var i = 0; i < h.length; i++)

{

    if(h.source.constructor.name != "HyperlinkTextSource")

          continue;

    var pt = h.source.sourceText.parentTextFrames[0]

    var nm = h.name

    var newSource = app.documents[0].hyperlinkPageItemSources.add(pt)

    var nh = app.documents[0].hyperlinks.add(newSource, h.destination)

    h.remove()

    nh.name = nm

}

-Manan

-Manan
jaceks47464130
Participant
April 23, 2019

Well Done! Works fine! Thanks a lot